Нестандартные окна
Как это реализовать или где почитать?
Посмотри мое сообщение на ветке "Создать окно без заголовка"... Может поможет :)
Цитата:
Originally posted by DissDoc
Не знаю как сформулировать вопрос. Есть стандартное вин32 окно. Хочу из него сделать для начала вот это.
Не знаю как сформулировать вопрос. Есть стандартное вин32 окно. Хочу из него сделать для начала вот это.
Мммм.... Не совсем понял. Если по тому окну, которое прилеплено, то надо создать на главном окне дочернее окно класса EDIT. Наверное про функцию CreateWindow надо читать.
Не понятно, что тут нестандартного. Уточни.
Цитата:
Originally posted by DissDoc
Не знаю как сформулировать вопрос. Есть стандартное вин32 окно. Хочу из него сделать для начала вот это.
Как это реализовать или где почитать?
Не знаю как сформулировать вопрос. Есть стандартное вин32 окно. Хочу из него сделать для начала вот это.
Как это реализовать или где почитать?
В книжке "С++ Глазами Хакера" есть создание настандартных окон, там объясняется как создать окно по картинке, обрезанной по контуру, если сильно надо могу уточнить автора...
Или написать какието выдержки из книги...
Цитата:
Originally posted by Visualex
В книжке "С++ Глазами Хакера" есть создание настандартных окон, там объясняется как создать окно по картинке, обрезанной по контуру, если сильно надо могу уточнить автора...
Или написать какието выдержки из книги...
В книжке "С++ Глазами Хакера" есть создание настандартных окон, там объясняется как создать окно по картинке, обрезанной по контуру, если сильно надо могу уточнить автора...
Или написать какието выдержки из книги...
НЕ! Спасибо огромное, у меня эта книга есть ;) Вопрос был не в этом. Если не трудно, кто-нибудь покажите пример кода, который на стандартное Win32 окно ставит
1) вверх+вправо еще одно окно (как бы дочернее что ли...), короче чтоб оно встроилось в главное окно
2) combobox (в какую область - все равно)
Нужно встроить вправую сторону главного окна. Вот мой код
Код:
LRESULT CALLBACK MainWinProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
int wmId, wmEvent;
switch(msg)
{
case WM_COMMAND:
wmId = LOWORD(wparam);
wmEvent = HIWORD(wparam);
switch(wmId)
{
case ID_EXIT:
DestroyWindow(hwnd);
break;
default:
return DefWindowProc(hwnd, msg, wparam, lparam);
}
break;
case WM_PAINT:
break;
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
break;
}
}
return (DefWindowProc(hwnd, msg, wparam, lparam));
}
int WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR lpcmdline,
int nshowcmd)
{
WNDCLASSEX wnd;
HWND hwnd;
MSG msg;
wnd.cbSize = sizeof(WNDCLASSEX);
wnd.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
wnd.lpfnWndProc = MainWinProc;
wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hInstance = hinstance;
wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wnd.lpszMenuName = (LPCSTR)IDR_MENU_ME;
wnd.lpszClassName = "WND";
wnd.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wnd))
return 0;
if(!(hwnd = CreateWindowEx(NULL,
"WND",
"Map Editor for Senselessness (DX9)",
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
0, 0, 1024, 768,
NULL, NULL, hinstance, NULL)))
return 0;
ShowWindow(hwnd, SW_SHOWDEFAULT);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
{
int wmId, wmEvent;
switch(msg)
{
case WM_COMMAND:
wmId = LOWORD(wparam);
wmEvent = HIWORD(wparam);
switch(wmId)
{
case ID_EXIT:
DestroyWindow(hwnd);
break;
default:
return DefWindowProc(hwnd, msg, wparam, lparam);
}
break;
case WM_PAINT:
break;
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
break;
}
}
return (DefWindowProc(hwnd, msg, wparam, lparam));
}
int WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR lpcmdline,
int nshowcmd)
{
WNDCLASSEX wnd;
HWND hwnd;
MSG msg;
wnd.cbSize = sizeof(WNDCLASSEX);
wnd.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;
wnd.lpfnWndProc = MainWinProc;
wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hInstance = hinstance;
wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wnd.lpszMenuName = (LPCSTR)IDR_MENU_ME;
wnd.lpszClassName = "WND";
wnd.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wnd))
return 0;
if(!(hwnd = CreateWindowEx(NULL,
"WND",
"Map Editor for Senselessness (DX9)",
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
0, 0, 1024, 768,
NULL, NULL, hinstance, NULL)))
return 0;
ShowWindow(hwnd, SW_SHOWDEFAULT);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}