![]() |
|
תונולח תביבסב תיסופיט תינכות - C/C++ | |
![]() |
|
ישאר דומע | םיניינע ןכות | סינוקא ןד תאמ |
![]() |
![]() .המיאתמ העדוה העיפומ ,ילאמשה רבכעה ןצחל לע ץחול התאשכ .הטושפ דאמ איה ל"נה תינכותה .המיאתמ העדוה העיפומ ,ינמיה רבכעה ןצחל לע ץחול התאשכ :דוקה הנה לכ םדוק ךא .ךשמהב רבסות איה .תינכותה תא ןיבמ ךניא םא להבית לא //TRADWIN.CPP: A Traditional Windows Program #define STRICT #include <windows.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { switch (iMsg) { case WM_LBUTTONDOWN: MessageBox(hWnd, "Left-mousebutton pressed", "Info", MB_OK); return 0; case WM_RBUTTONDOWN: MessageBox(hWnd, "Right-mousebutton pressed", "Info", MB_OK); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, iMsg, wParam, lParam); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { const char *const szAppName = "tradwin"; WNDCLASSEX wndclass; HWND hWnd; MSG msg; wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); hWnd = CreateWindow(szAppName, "Tradwin: Press a mousekey.", WS_OVERLAPPEDWINDOW, 0, 0, 640, 480, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } ,תונולח תביבסב .התוא הצירמו main היצקנופה תא תשפחמ הלעפהה תכרעמ ,DOS תביבסל תינכותב .WinMain היצקנופה תא תשפחמ הלעפהה תכרעמ ,שחרתמש עוריא לכ לע .WndProc היצקנופב תונבומ תובוגתה לכ ?תויושחרתהל ביגת תינכותה ךיא ןולח י"ע רתסוה תינכותה לש ןולחה ,ילאמש רבכע ןצחל ץחלנ :לשמל) ךכ לע העדוה תלבקמ וזה היצקנופה Windows ,ילאמש רבכע שקמ ץחלנשכ ,לשמל .שחרתהש עוריאה גוס תא קיזחמ iMsg רטמרפה .('וכו רחא (Window.h-ב רדגומש) עובקה תא קיזחמ iMsg רטמרפה רשאכ WndProc היצקנופל דימ תארוק ונלש הרקמב .עצבתיש דוק עטקל עוריא לכ בתנל לכונ case-ו switch תדוקפ י"ע .WM_LBUTTONDOWN .ךסמה לע העדוה תבית הארמ רשא MessageBox היצקנופל םיארוק ונא ![]() תארקנ ,Alt-F4 לע הציחל י"ע וא ("X") הריגסה ןצחל לע הציחל י"ע תינכותה תא םייסמ שמתשמה רשאכ היצקנופל ארקנ הז הרקמב .WM_DESTROY עובקה תא ליכמ iMsg רטמרפה רשאכ WndProc היצקנופה .ןורכיזהמ תינכותה רורחשל תמרוג רשא PostQuitMessage .הרוקש ןטק יכה ספיפ לכ לע הלעפהה תכרעממ תועדוה ןמזה לכ תלבקמ WndProc היצקנופה ,השעמל היצפואה תמייק הז ליבשב .תחלוש הלעפהה תכרעמש תועדוהה לכב לפטל (קקדזנ אלו) לכונ אלש ןבומכ הלעפהה תכרעממ העדוהה גוסל ונלש תינכותב תשרופמ תוסחייתה ןיא רשאכ קר תלעפומ וז היצפוא .Default רשאכ ךא Default הלימה המושר אל תינכותב .לדחמ תרירב לופיטב העדוהב לפטת הלעפהה תכרעמש וננוצרבו הרזחה תדוקפ עצבתת ,םייקתי אל case-ה ירקממ דחא ףא ;(hWnd, iMsg, wParam, lParam)return DefWindowProc.הלעפהה תכרעמ לש לדחמ תרירב לופיטל העדוהה תא תחלוש רשא :הרושה #define STRICT דאמ הברה שיש הארנ ,תונולח תביבסב תונכיתב םיקסעתמ ונאשכ .דוקה תא בטיה קודבל רלייפמוקל תרמוא לכל וא Handle-ל תוסחייתה לכש חיגשהל רלייפמוקל תרמוא ל"נה הרושה .םינוש םיגוסמ Handles-ו תוקלחמ .רתוי תאז ןיבת ךשמהב .גלזמה הצק לע הז .הנוכנ היהת רבד |