quechesmijar1980のブログ -5ページ目

quechesmijar1980のブログ

ブログの説明を入力します。

 前回、コンボボックスのスタイルが「CBS_DROPDOWNLIST」の場合の値の取得/操作の方法を紹介しましたが、今回は、「CBS_DROPDOWN」での値の取得、操作方法を紹介します。 基本的には前回のものとほぼ同じなのですが、値を取得/操作するタイミングは、ほとんどの場合、任意のタイミングだと思うので、その方法について紹介します。 値取得/操作する方法として、コンボボックスのポインタを取得して、そのポインタから値取得/操作するようにします。 そのため、コンボボックスのポインタを取得する関数を用意します。(ここでは、「GetComboBox」) その関数内で以下のように処理し、コンボボックスのポインタを返すようにします。CMFCToolBarComboBoxButton* CXXX::GetComboBox(void){ CMFCToolBarComboBoxButton* pSrcCombo = NULL; CObList listButtons; if(CMFCToolBar::GetCommandButtons(ID_COMBOBOXBUTTON, listButtons) > 0) { for(POSITION posCombo = listButtons.GetHeadPosition(); pSrcCombo == NULL && posCombo != NULL;) { CMFCToolBarComboBoxButton* pCombo = DYNAMIC_DOWNCAST(CMFCToolBarComboBoxButton, listButtons.GetNext(posCombo)); if(pCombo != NULL) pSrcCombo = pCombo; } } return pSrcCombo;} その後、返ってきたポインタを使って値の取得/操作をします。 以下に値を取得する方法を掲載します。 CString strName; CMFCToolBarComboBoxButton* pSrcCombo = GetComboBox(); if(pSrcCombo != NULL) pSrcCombo->GetEditCtrl()->GetWindowText(strName); ここで注意点として、スタイルが「CBS_DROPDOWNLIST」のときに値を取得するには「pSrcCombo->GetItem()」としましたが、スタイルが「CBS_DROPDOWN」のときは、「pSrcCombo->GetWindowText(strName)」でもなく、「pSrcCombo->GetEditCtrl()->GetWindowText(strName)」のように、子のエディットコントロールから取得します。 ...