WIN32APIプログラムのBUTTONの振舞い
◇-?WIN32APIプログラムのBUTTONの振舞い-しん-06/18-14:34(154)-No.478931 ┗?~Re:WIN32APIプログラムのBUT...-jtaka[BJCB]-06/18-14:40(154)-No.478933 ┗?~【解決】Re:WIN32APIプログラム...-しん-06/19-08:25(136)-No.478966
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
478931 | WIN32APIプログラムのBUTTONの振舞い | しん URL | 2009/06/18-14:34 |
メーカー名:東芝 OS名:WindowsXp HomeEdition パソコン名:PAEX322PDE3 使用回線:ADSL -- ・C言語とWIN32APIで作成しています。 ・別のプログラムでBUTTONを作成したのですが、BUTTONをクリックした後、Key入力が出来なくなります。 ・そこで下記のtestプログラムを作成しました。 ・Keyを押すと対応する仮想キーコードが表示されます。 ・BUTTONのNO_1を押した後、何かキーを押しても反応しません。 ・スペースキーを押すとBUTTONのNO_1が反応します。 #include <windows.h> HINSTANCE hInst; char szBuf[250]; //*********************************************************************************************** LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { PAINTSTRUCT ps; switch (msg) { case WM_CREATE: CreateWindow((LPCTSTR)"BUTTON","NO_1",WS_CHILD|WS_VISIBLE|WS_BORDER, 100,100,100,70,hWnd,(HMENU)100,hInst,NULL); return 0; case WM_KEYDOWN: wsprintf(szBuf,"WM_KEYDOWN=%3d",wp); InvalidateRect(hWnd, NULL, FALSE); return 0; case WM_PAINT: BeginPaint(hWnd, &ps); TextOut(ps.hdc,10,20,szBuf,lstrlen(szBuf)); EndPaint(hWnd, &ps); return 0; case WM_COMMAND: switch(LOWORD(wp)){ case 100: break; } return 0; case WM_CLOSE: DestroyWindow(hWnd); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, msg, wp, lp); } } //*********************************************************************************************** // WinMain //*********************************************************************************************** int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) { WNDCLASS wc; MSG msg; HWND hWnd; hInst = hInstance; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInst; wc.hIcon = NULL; wc.hCursor = 0; wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.lpszMenuName = 0; wc.lpszClassName = (LPCTSTR)"test"; if (!RegisterClass(&wc)) return FALSE; //****************************************************************************************** hWnd = CreateWindow( "test",TEXT(__FILE__),WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInst,NULL); if (!hWnd) return FALSE; //****************************************************************************************** while(GetMessage(&msg,NULL,0,0) > 0) { DispatchMessage(&msg); TranslateMessage(&msg); } return (int)msg.wParam; } |
▲このページのトップに戻る
478933 | Re:WIN32APIプログラムのBUTTONの振 | jtaka[BJCB] | 2009/06/18-14:40 |
記事番号478931へのコメント しんさんは No.478931「WIN32APIプログラムのBUTTONの振舞い」で書きました。 別サイトでの進行状況: http://www.kotaete-net.net/Default.aspx?pgid=14&qid=100459802053 |
▲このページのトップに戻る
478966 | Re:WIN32APIプログラムのBUTTONの振 | しん | 2009/06/19-08:25 |
記事番号478933へのコメント jtaka[BJCB]さんは No.478933「Re:WIN32APIプログラムのBUTTONの振」で書きました。 有難うございました SetFocus(hWnd); これで、出来ました。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|