//Моё первое окно!
#include "windows.h"
#include "windowsx.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM,LPARAM);
int APIENTRY WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS w;
memset(&w,0,sizeof(WNDCLASS));
w.style = CS_HREDRAW | CS_VREDRAW;
w.lpfnWndProc = WndProc;
w.hInstance = hInstance;
w.hCursor = LoadCursor(NULL, IDC_ARROW);
w.hbrBackground = GetStockBrush(WHITE_BRUSH);
w.lpszClassName = "C Windows";
RegisterClass(&w);
////////////////////////////////////
///Создаём окно////////////////////
//////////////////////////////////
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
"C Windows",
"C Windows",
WS_OVERLAPPEDWINDOW, //Стиль рамки
10, //Отступ сверху
10, //Отступ снизу
640, //Ширина
480, //Высота
NULL,
NULL,
hInstance,
NULL);
////////////////////////////////////
///Создаём кнопку//////////////////
//////////////////////////////////
CreateWindow("button", "Button1", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
10, 10,
80, 30,
hwnd, (HMENU)10000, hInstance, NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
/////////////////////////////////////////////////
///А тут обработка сообщений!///////////////////
///////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam)
{
if (Message == WM_DESTROY)
{
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,Message,wparam,lparam);
}
Покажите как надо кодить диалоговые приложения на Win Api
Хочется посмотреть как контролы в окно добавляются и как можно управлять пунктами меню(от дисеблить там.. скрыть и проч..)
Цитата:
Originally posted by warezhka
Народ поделитесь каким-нито небольшим красивым примером диалогового приложения написанного на VC++ с использованием WIN API.
Хочется посмотреть как контролы в окно добавляются и как можно управлять пунктами меню(от дисеблить там.. скрыть и проч..)
Народ поделитесь каким-нито небольшим красивым примером диалогового приложения написанного на VC++ с использованием WIN API.
Хочется посмотреть как контролы в окно добавляются и как можно управлять пунктами меню(от дисеблить там.. скрыть и проч..)
Ну так береш в ресурсах делаеш диалоговое окно, кидаешь туда контролы. Потом в WinMain(...) не делая класса окна запускаешь это диалоговое окно DialogBox(...). Вот и все. В обработке событий длг окна можешь отлавливать мессаджи от контролов. Динамически создавать контролы CreateWindowEx(...).
Или интересует что-то другое ?
Цитата:
Originally posted by Matush
Или интересует что-то другое ?
Или интересует что-то другое ?
Как раз это и интересует:)
Цитата:
Originally posted by Matush
Ну так береш в ресурсах делаеш диалоговое окно, кидаешь туда контролы. Потом в WinMain(...) не делая класса окна запускаешь это диалоговое окно DialogBox(...). Вот и все. В обработке событий длг окна можешь отлавливать мессаджи от контролов. Динамически создавать контролы CreateWindowEx(...).
Или интересует что-то другое ?
Ну так береш в ресурсах делаеш диалоговое окно, кидаешь туда контролы. Потом в WinMain(...) не делая класса окна запускаешь это диалоговое окно DialogBox(...). Вот и все. В обработке событий длг окна можешь отлавливать мессаджи от контролов. Динамически создавать контролы CreateWindowEx(...).
Или интересует что-то другое ?
Почитал про бросание контролов и совсем запутался... Наверно ламка я ещо полная...
Я так пишу : :D
Код:
и никакие контролы не таскаю... Пишу и пишу...
BOOL CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDCANCEL:
EndDialog(hDlg, wParam);
}
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE , LPSTR, int)
{
DialogBox(hInst, MAKEINTRESOURCE(IDD_MAINDLG), NULL, (DLGPROC)MainDlgProc);
return 0;
}
Вот и все. Имеем рабочее окошко с кнопочками\едитами\комбобоксами...