Эксперт
   
Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006
Репутация: 39 Всего: 146
|
| Код | #include <windows.h>
#pragma hdrstop #pragma argsused
#define ID_EDIT 1001 #define ID_BUTTON 1002 #define ID_LABEL 1003 #define CM_FILE_NEW 1004
LRESULT CALLBACK WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM IParam);
HINSTANCE hInstance;
LPCTSTR lpszClassName = TEXT("Game"); // не путайте LPCTSTR и LPCSTR char szTitle[]="Добро пожаловать в игру, "; char szMenu[]="Меню";
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; HWND hWnd; HWND hWndtwo; WNDCLASSEX wndcl; WNDCLASSEX two;
wndcl.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS; wndcl.lpfnWndProc=(WNDPROC) WndProc; wndcl.cbClsExtra = 0; wndcl.cbWndExtra = 0; wndcl.hInstance = hInstance; wndcl.hIcon = LoadIcon(NULL,IDI_APPLICATION); wndcl.hCursor = LoadCursor(NULL, IDC_ARROW); wndcl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wndcl.lpszMenuName = NULL; wndcl.lpszClassName = lpszClassName; wndcl.cbSize = sizeof (WNDCLASSEX); wndcl.hIconSm=0; wndcl.lpszMenuName=NULL;
if(!RegisterClassEx (&wndcl)) return (FALSE);
hWnd = CreateWindow(lpszClassName, "First", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT,0, NULL,NULL, hInstance, NULL); if (!hWnd) return (FALSE);
ShowWindow (hWnd, nCmdShow); UpdateWindow(hWnd);
while (GetMessage(&msg, 0,0,0)) { TranslateMessage (&msg); DispatchMessage(&msg); }
return msg.wParam; } LRESULT CALLBACK WndProc (HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM IParam) { LPCTSTR lpText; LPCTSTR lpCaption; HDC hdc; RECT rect; HWND hWndtwo; static HWND hEdit, hButton, hLabel; char chBuff[50]; static HANDLE hImage1; BITMAP bm1;
switch(uMsg) { case WM_PAINT: { PAINTSTRUCT ps; BITMAP bm;
hdc = BeginPaint(hWnd,&ps);
HDC hdcMem = CreateCompatibleDC(ps.hdc); HBITMAP hbmOld = SelectObject(hdcMem, hImage1);
GetObject(hImage1, sizeof(bm), &bm); // определяем размеры рисунка
BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY); //GetClientRect(hWnd, &rect); //StretchBlt(hdc, 0, 0, rect.right, rect.bottom, hdcMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
SelectObject(hdcMem, hbmOld); DeleteDC(hdcMem);
EndPaint(hWnd,&ps); return 0; } case WM_CREATE: { hLabel=CreateWindow("static","Введите имя:",WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,330,279,300,30,\ hWnd,(HMENU)ID_LABEL,hInstance,NULL); hEdit=CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,330,300,300,20,\ hWnd,(HMENU)ID_EDIT,hInstance,NULL); hButton=CreateWindow("button","OK",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,330,320,300,30, hWnd,(HMENU)ID_BUTTON,hInstance,NULL);
hImage1=LoadImage(NULL,"C:\\debug.BMP", IMAGE_BITMAP,0,0,LR_LOADFROMFILE/*|LR_LOADTRANSPARENT*/); // вам этот флаг нужен? return 0; } case WM_COMMAND: { switch(LOWORD(wParam)) { case ID_EDIT: { if ((HIWORD(wParam))==EN_ERRSPACE){ MessageBox(hWnd,"Мало памяти",szTitle,MB_OK);} return 0; } case ID_BUTTON: { DestroyWindow(hLabel); DestroyWindow(hEdit); DestroyWindow(hButton); HMENU hMenu; HMENU hSubMenu1,hSubMenu2,hSubMenu3; MENUINFO mi; MENUITEMINFO mii; hMenu = CreateMenu();
mi.cbSize = sizeof(MENUINFO); mi.fMask = MIM_STYLE; mi.dwStyle = MNS_NOTIFYBYPOS; SetMenuInfo(hMenu, &mi);
hSubMenu1 = CreatePopupMenu();
mi.cbSize = sizeof(MENUINFO); mi.fMask = MIM_STYLE; mi.dwStyle = MNS_NOTIFYBYPOS; SetMenuInfo(hSubMenu1, &mi);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "File"; mii.hSubMenu = hSubMenu1; InsertMenuItem(hMenu, 11, false, &mii);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "New Game"; InsertMenuItem(hSubMenu1, 22, false, &mii);
hSubMenu3 = CreatePopupMenu(); mi.cbSize = sizeof(MENUINFO); mi.fMask = MIM_STYLE; mi.dwStyle = MNS_NOTIFYBYPOS; SetMenuInfo(hSubMenu3, &mi);
hSubMenu2 = CreatePopupMenu(); mi.cbSize = sizeof(MENUINFO); mi.fMask = MIM_STYLE; mi.dwStyle = MNS_NOTIFYBYPOS; SetMenuInfo(hSubMenu1, &mi);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "HELP"; mii.hSubMenu = hSubMenu2; InsertMenuItem(hMenu, 55, false, &mii);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "Help"; InsertMenuItem(hSubMenu2, 66, false, &mii);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "About..."; InsertMenuItem(hSubMenu2, 77, false, &mii);
mii.cbSize = sizeof(MENUITEMINFO); mii.fMask = MIIM_STRING | MIIM_SUBMENU | MIIM_FTYPE; mii.fType = MFT_STRING; mii.dwTypeData = "Exit"; mii.hSubMenu = hSubMenu3; InsertMenuItem(hMenu, 55, false, &mii);
SetMenu(hWnd, hMenu); DrawMenuBar(hWnd); return 0; } // ID_BUTTON } // switch } // WM_COMMAND
case WM_MENUCOMMAND: { break; }
case WM_DESTROY: { DeleteObject((HGDIOBJ)hImage1); PostQuitMessage(0); break; }
default: return DefWindowProc(hWnd, uMsg, wParam, IParam); } return 0L; } |
|