Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему не появляется pop-up окно?

12K
22 апреля 2007 года
Lyalya_ua
25 / / 24.11.2006
При нажатии правой кнопки мыши должно появлятся pop-up окно, когда кнопку отпускаем - окно должно изчезнуть.
Чтоя сделала не так?
MERCI!
Код:
#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;

}
12K
22 апреля 2007 года
Lyalya_ua
25 / / 24.11.2006
оЙ! Переместите кто-небудь эту тему в VISUAL C++!
27K
23 апреля 2007 года
microkoder
5 / / 20.04.2007
А не проще в Borland C++ это написать, язык тот же, да и визуальная разработка гораздо приятнее чем у мелкомягких :) Тем более там есть специальный компонент PopUpMenu :) Который легко подвесить хоть к форме, хоть к почти любому другому компоненту!
12K
23 апреля 2007 года
Lyalya_ua
25 / / 24.11.2006
Дело в том что у меня нету возможности выбирать язык. Надо в вижуал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог