#include <windows.h>
LONG APIENTRY WndProc(HWND, UINT, WPARAM, LPARAM);
const char szWindowClass[] = "Windows";
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
HWND hWndMain;
LPRECT rcParent;
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_UPARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+10);
wc.lpszMenuName = NULL;
wc.lpszClassName = szWindowClass;
//Step1. Registering Window Class
if (!RegisterClass(&wc))
{
MessageBox(NULL, "Window Registration Failed", "Error", MB_ICONEXCLAMATION | MB_OK);
return 1;
}
//Step 2:Finding the screen size
int a,a1;
a= GetSystemMetrics(SM_CXSCREEN);
int b,b1;
b = GetSystemMetrics(SM_CYSCREEN);
a1 = a/3;
b1=b/3;
//Step 3: Creating the Window
hWndMain = CreateWindow(szWindowClass,"Main window", WS_OVERLAPPEDWINDOW,0,650,a1,b1,NULL, NULL, hInstance, NULL);
if (!hWndMain)
{
MessageBox(NULL, "Window Creation Failed", "Error", MB_ICONEXCLAMATION | MB_OK);
return 2;
}
ShowWindow(hWndMain,nCmdShow);
UpdateWindow(hWndMain);
//Step 4: The Message Loop
while (GetMessage(&msg, NULL, 0, 0))
DispatchMessage(&msg);
return 0;
}
//The Window Procedure
HINSTANCE hInstance;
RECT rcClient;
HWND hWndPopup;
LONG APIENTRY WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_RBUTTONDOWN:
{
CreateWindow(0,"ChildClass",WS_POPUPWINDOW|WS_CAPTION|WS_VISIBLE,0,0,0,0,hWndPopup,NULL,hInstance,NULL);
LPRECT rcClient;
rcClient = (LPRECT) lParam;
SetWindowPos(hWndPopup,0,(rcClient->right/4),(rcClient->right/4),120,70,SWP_SHOWWINDOW);
//MoveWindow (hWndPopup, (rcClient->right/4),0,rcClient->right/4,rcClient->bottom,TRUE);
ShowWindow(hWndPopup, SW_SHOW);
UpdateWindow (hWndPopup);
}
case WM_RBUTTONUP:
{
ShowWindow(hWndPopup, SW_HIDE);
UpdateWindow (hWndPopup);
}
case WM_CLOSE:
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Почему не появляется pop-up окно?
При нажатии правой кнопки мыши должно появлятся pop-up окно, когда кнопку отпускаем - окно должно изчезнуть.
оЙ! Переместите кто-небудь эту тему в VISUAL C++!
А не проще в Borland C++ это написать, язык тот же, да и визуальная разработка гораздо приятнее чем у мелкомягких :) Тем более там есть специальный компонент PopUpMenu :) Который легко подвесить хоть к форме, хоть к почти любому другому компоненту!
Дело в том что у меня нету возможности выбирать язык. Надо в вижуал.