jeon
Зарегистрирован: 22.10.2005 Сообщения: 1
|
Добавлено: Сб Окт 22 2005 15:29 Заголовок сообщения: программирование на API. Как нажать на кнопку. |
|
|
Привет. Хочу просто сделать форму с кнопкой и чтобы при нажатии на кнопку что-нить делалось (все равно что) на чистом API. Форму я сделал и могу обрабатывать сообщения которые в неё поступают, у меня при нажатии на кнопку левой или правой кнопкой меняется текст окна и если открыт «Блокнот», то меняется и текст его заголовка окна. Добавил и кнопку на форму, но вот как обрабатывать сообщения для кнопки я не догоню!!! Собственно вот и вопрос – как сделать обработчик для кнопки. Вот код, который у меня получился:
<code>
#include <windоws.h>
LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
HWND hwnd,bhwnd;
MSG msg;
WNDCLASS w;
memset(&w,0,sizeof(WNDCLASS));
w.style=NULL;
w.lpfnWndProc=WndProc;
w.hInstance=hInstance;
w.hbrbаскgrоund=(HBRUSH)COLOR_windоw;
w.lpszClassName="First";
w.hCursor=LoadCursor(NULL, IDC_ARROW);
RegisterClass(&w);
hwnd=Createwindоw("First","fucking windоw",WS_OVERLAPPEDwindоw,1,1,500,400,NULL,NULL,hInstance,NULL);
bhwnd=Createwindоw("BUTTON","OK",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,10,10,100,100,hwnd,NULL,NULL,NULL);
Showwindоw(hwnd,nShowCmd);
Updatewindоw(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LONG WINAPI WndProc(HWND hwnd,UINT Message,WPARAM wparam,LPARAM lparam)
{
switch(Message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONDOWN:
SetwindоwText(hwnd,"not fucking windоw");
break;
case WM_RBUTTONDOWN:
HWND hnd;
hnd=Findwindоw(NULL,"Áåçûìÿííûé - Áëîêíîò");
SetwindоwText(hnd,"jeon's soft - notepad");
SetwindоwText(hwnd,"its so scary in a world with peoples who are idiots");
break;
default:
return DefwindоwProc(hwnd,Message,wparam,lparam);
}
return 0;
}
</code> |
|
kashtan
Зарегистрирован: 28.10.2005 Сообщения: 3 Откуда: Санкт-Петербург
|
Добавлено: Пт Окт 28 2005 17:02 Заголовок сообщения: |
|
|
Все просто:
Код: |
LONG WINAPI WndProc(HWND hwnd,UINT Message,WPARAM wparam,LPARAM lparam)
{
switch(Message)
{
// ********************************************************
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case BN_CLICKED:
if((HWND)lParam == bhwnd)
MessageBox(0, "Button clicked!","Notify", MB_OK);
break;
}
break;
// ********************************************************
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONDOWN:
SetwindоwText(hwnd,"not fucking windоw");
break;
case WM_RBUTTONDOWN:
HWND hnd;
hnd=Findwindоw(NULL,"Aacuiyiiue - Aeieiio");
SetwindоwText(hnd,"jeon's soft - notepad");
SetwindоwText(hwnd,"its so scary in a world with peoples who are idiots");
break;
default:
return DefwindоwProc(hwnd,Message,wparam,lparam);
}
return 0;
}
|
Вместо MessageBox ставь свой обработчик нажатия на клавишу... _________________ Здесь все не просто, а очень просто... |
|