リストボックスコントロールは、デフォルトではダブルクリックを親ウィンドウに通知してくれない。 リストボックスのダブルクリックを親ウィンドウに通知する例// サブクラス化 WNDPROC OriginalListBoxProc = SubclassWindow( hListBox, ListBoxProc ); // ウィンドウ関数 LRESULT APIENTRY ListBoxProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { // UINT uMsg; はリストボックスに送られてきたメッセージの値 switch( uMsg ) { case WM_LBUTTONDBLCLK: { // ダブルクリックを親ウィンドウに通知する NMHDR nmh; memset( &nmh, 0, sizeof( nmh ) ); nmh.code = NM_DBLCLK; nmh.idFrom = GetDlgCtrlID( hWnd ); nmh.hwndFrom = hWnd; HWND hParent = GetParent( hWnd ); return SendMessage( hParent, WM_NOTIFY, nmh.idFrom, (LPARAM)&nmh ); } …… 省略 …… }//ListBoxProc 関連 | |