CMFCPropertyGridProperty中選定屬性項為ComboBox時,想通過鍵盤Alt+↓來控制屬性項ComboBox下拉框的顯示。
打算代碼在 === 之間加入。但查了一些資料,從prop到ShowDropDown(BL_TRUE)過渡不過來。
希望朋友給予幫助,謝謝指導。
switch(msg->message)
{
case WM_SYSKEYDOWN:
if(::GetKeyState(VK_MENU) < 0)
{
char key = static_cast<char>(msg->wParam);
switch(key)
{
case VK_DOWN:
CMFCPropertyGridProperty* prop = CMFCPropertyGridCtrl::GetCurSel();
if(prop == nullptr) break;
if(!prop->IsAllowEdit())
{
======================================================
======================================================
}
}
}
break;
case WM_KEYDOWN:
switch(msg->wParam)
{
case VK_TAB:
CMFCPropertyGridCtrl::SendMessageW(WM_KEYDOWN, VK_DOWN);
return BL_TRUE;
default:
return CMFCPropertyGridCtrl::PreTranslateMessage(msg);
}
break;
}
return CMFCPropertyGridCtrl::PreTranslateMessage(msg);
uj5u.com熱心網友回復:
捕捉鍵盤訊息 這按下ALT+向上鍵的時候 觸發你的下拉動作虛擬鍵(VK_*)
鍵盤上每一個鍵對應一個掃描碼,掃描碼是OEM廠商制定的,不同的廠商生產的鍵盤同樣一個按鍵的掃描碼都有可能出現不一致的情況,為了擺脫由于系統設備不一致的情況,通過鍵盤驅動程式將掃描碼映射為統一的虛擬鍵碼表示,從而達到所有的設備都有一個統一的虛擬鍵,比如回車鍵的虛擬鍵是VK_RETURN。
Windows定義的虛擬鍵都定義在WinUser.h這個頭檔案里面,都是以VK_作為前綴。
uj5u.com熱心網友回復:
swwllx 謝謝您的回復,但沒太明白您的意思,上面這段代碼就是捕捉鍵盤訊息。通過鍵盤Alt+向下鍵來實作CMFCPropertyGridProperty中屬性項ComboBox下拉框的顯示。可能是我沒有表達清楚,對不起。
一個ProtertyGrid可以多個Property,一個Property可以有多個Item,一個Item通過定義可以是Edit,可以是ComboBox。
對于一般的ComboBox控制元件,呼叫ShowDropDown函式就可以把下拉框彈出。
代碼中的 CMFCPropertyGridProperty* prop = CMFCPropertyGridCtrl::GetCurSel();可以得到當前選定屬性項,但現在不知道通過什么方法可以從prop過渡到呼叫有效的ShowDropDown。
希望經驗者指導,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/126389.html
標籤:基礎類
上一篇:求VB大神撰寫一個圖形代碼
