|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
Вот теперь мы сделали две кнопки, и указатели на эти кнопки хранятся в соответствующих переменных, которые мы объявили в самом начале. Кнопки создаются функцией CreateWindow, которую мы подробно описали. Единственное, что стоит добавить – это то, что BUTTON (см. первый параметр) – это стандартный класс предусмотренный Windows. Ну вот, теперь можно писать для этих кнопок обработчик сообщений (событий), который с ними происходят. Добавим в WndProc следующие строчки:
Код:
LONG WINAPI WndProc(HWND hwnd,UINT Message,WPARAM wparam,LPARAM lparam)
{
switch(Message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_LBUTTONDOWN:
SetWindowText(hwnd,"not fucking WINDOW");
break;
case WM_RBUTTONDOWN:
HWND hnd;
hnd=FindWindow(NULL,"Áåçûìÿííûé - Áëîêíîò");
SetWindowText(hnd,"jeon's soft - notepad");
SetWindowText(hwnd,"its so scary in a world with peoples who are idiots");
break;
case WM_COMMAND:
if((HWND) lparam==b1hwnd)SetWindowText(hwnd,"OK was clicked");
if((HWND) lparam==b2hwnd)SetWindowText(hwnd,"Cool was clicked");
default:
return DefWindowProc(hwnd,Message,wparam,lparam);
}
return 0;
}
Ну вот и все…. Удачного программирования, это тебе не Делфи или ВБ, тута все круто. Вот полный код программы:
Код:
#include <windows.h>
LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);
HWND b1hwnd,b2hwnd;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
HWND hwnd;
MSG msg;
WNDCLASS w;
memset(&w,0,sizeof(WNDCLASS));
w.style=CS_SAVEBITS;
w.lpfnWndProc=WndProc;
w.hInstance=hInstance;
w.hbrBackground=(HBRUSH)COLOR_WINDOW;
w.lpszClassName="First";
w.hCursor=LoadCursor(NULL, IDC_ARROW);
RegisterClass(&w);
hwnd=CreateWindow("First","fucking window",WS_OVERLAPPEDWINDOW,100,100,500,400,NULL,NULL,hInstance,NULL);
b1hwnd=CreateWindow("BUTTON","OK",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,10,10,100,100,hwnd,NULL,NULL,NULL);
b2hwnd=CreateWindow("BUTTON","Cool",WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,110,110,100,100,hwnd,NULL,NULL,NULL);
ShowWindow(hwnd,SW_MAXIMIZE);
UpdateWindow(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:
SetWindowText(hwnd,"not fucking WINDOW");
break;
case WM_RBUTTONDOWN:
HWND hnd;
hnd=FindWindow(NULL,"Áåçûìÿííûé - Áëîêíîò");
SetWindowText(hnd,"jeon's soft - notepad");
SetWindowText(hwnd,"its so scary in a world with peoples who are idiots");
break;
case WM_COMMAND:
if((HWND) lparam==b1hwnd)SetWindowText(hwnd,"OK was clicked");
if((HWND) lparam==b2hwnd)SetWindowText(hwnd,"Cool was clicked");
default:
return DefWindowProc(hwnd,Message,wparam,lparam);
}
return 0;
}
если че пиши на jeon@inbox.ru
|