.


:




:

































 

 

 

 


DrawShape( hWnd, hdc, shapeData, shapeSize, bShow );




EndPaint(hWnd, &ps);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hWnd, message, wParam, lParam);

}

return 0;

}

 

.

, , drawShape .

 

  1. , . . , Windows , . , .

 

 

:

BOOL SetMenuDefaultItem(

HMENU hMenu, // UINT uItem, // , UINT fByPos // FALSE);

WndProc WM_CREATE , :

SetMenuDefaultItem(GetSubMenu(hMenu,0), IDM_OPEN, FALSE);

,

HMENU GetSubMenu(

HMENU hMenu, // int nPos // - );

nPos .

. , .

 

  1. (radio button). . , . .

 

BOOL CheckMenuRadioItem(

HMENU hmenu, // UINT idFirst, // UINT idLast, // UINT idCheck, // UINT uFlags // idFirst, idLast idCheck);

uFlags MF_BYCOMMAND, . uFlags MF_BYPOSITTION, .

, , Resurce.h . CheckMenuRadioItem .

 

 

- . ,

CheckMenuRadioItem(GetSubMenu(hMenu,1),IDM_SHOW_SHAPE,

IDM_HIDE_SHAPE, IDM_SHOW_SHAPE, MF_BYCOMMAND);

WM_CREATE.

 

WM_COMMAND wParam ,

case IDM_SHOW_SHAPE:

CheckMenuRadioItem(GetSubMenu(hMenu,1),IDM_ SHOW_SHAPE,

IDM_ HIDE_SHAPE, LOWORD(wParam), MF_BYCOMMAND);

 

case IDM_HIDE_SHAPE:

 

CheckMenuRadioItem(GetSubMenu(hMenu,1),IDM_ SHOW_SHAPE,

IDM_ HIDE_SHAPE, LOWORD(wParam), MF_BYCOMMAND);

 

 

. , .

 

:

 

nPos GetSubMenu
  ID_RECTANGLE ID_ELLIPSE
  ID_RED ID_BLUE
  ID_DARK ID_LIGHT

 

. , .

 

8. ! IDM_RESIZE , . case IDM_RESIZE: , shapeSize:

shapeSize = (shapeSize == MIN)? MAX: MIN;

// , shapeSize 0 1

 

. , - ModifyMenu.

BOOL ModifyMenu(

HMENU hMnu, // UINT uPosition, // UINT uFlags, // ( MF_BYCOMMAND // MF_BYPOSITTION) PTR uIDNewItem, // LPCTSTR lpNewItem // );

switch WndProc TCHAR :

TCHAR* itemResizeName[2] = {TEXT("!"),TEXT("!")};

 

case IDM_RESIZE:

ModifyMenu(hMenu, IDM_RESIZE, MF_BYCOMMAND, IDM_RESIZE,

itemResizeName[shapeSize]); // 0 1!!

DrawMenuBar(hWnd); //

//

.

, ! .

 

9. , , , . , . , EnableMenuItem.

BOOL EnableMenuItem(

HMENU hMenu, // UINT uIDEnableItem, // UINT uEnable // );

uEnable:

MFS_ENABLED ( ),

MFS_DISABLED ( ),

MFS_GRAYED ( ).

IDM_RESIZE. WM_COMMAND, wParam, IDM_HIDE_SHAPE, EnableMenuItem, MF_BYCOMMAND|MFS_GRAYED.

 

EnableMenuItem (hMenu, IDM_RESIZE, MF_BYCOMMAND|MFS_GRAYED);

DrawMenuBar(hWnd); // !!!!!!!!

 

WM_COMMAND, wParam, IDM_SHOW_SHAPE, EnableMenuItem, MF_BYCOMMAND|MFS_ENABLED.

EnableMenuItem (hMenu, IDM_RESIZE, MF_BYCOMMAND|MFS_ ENABLED);

DrawMenuBar(hWnd); // !!!!!!!!

 

. , ! .

 

, . , ID_RECTANGLE, ID_RHOMB, ID_ ELLIPSE, ID_ RED, ID_ GREEN, ID_BLUE, ID_DARK, ID_LIGHT, ID_MEDIUM. ,

UINT IdPunktMenu [ ] = { IDM_RESIZE,

ID_RECTANGLE, ID_RHOMB, ID_ELLIPSE,

ID_RED, ID_GREEN, ID_BLUE,

ID_DARK, ID_LIGHT, ID_MEDIUM };

sizeof (IdPunktMenu) / sizeof(UINT).

 

EnableMenuItem, , IdPunktMenu, n, UINT uEnable EnableMenuItem , , .. :

void EnableMenuItem (HMENU hMenu, UINT* IdPunktMenu, int n, UINT uEnable).

 

case EnableMenuItem .

. , .

 

10. (keyboard accelerator) , WM_COMMAND. , .

, :

  • , .

_tWinMain LoadAccelerators, TranslateAccelerator , , , . _tWinMain!

 

- alt + ( ).

_ .rc . Menu, IDC_MY ( ), .

. , , , , . \alt +

 

Accelerator , , . ID , (Modifier) alt, (Key) , (Type) ASCII.

. , .

 

.

 

, Shift, Ctrl Alt. , Windows.

 

, , .

 

1. ?

2. ?

3. Windows . ?

4. ? ? ?

5. Windows , ?

6. ?

7. ? ? ? ? ?

8. ?

9. ?

10. ?

11. ?

12. ?

 

13. ?

14. ?

15. ?

16. ?

17. WinMain?

18. hInstance?

19. ?

20. , Windows?

21. WM_COMMAND?

22. LOWORD?

23. HIWORD?

24. wParam, WM_COMMAND?

25. wParam, WM_COMMAND?

26. ?

26. .

27. ?

28. WM_PAINT?

29. WM_PAINT?

30. ?

31. , WM_PAINT / hWnd?

32. ?

33. -?

34. - ?

35. -?

36. -?

37. ?

38. ?

39. , , ?

40. ?

41. ?

42. ?

 

 

2

: . .

, .

 

, (dialog box), .

(controls), . (dialog procedure), , .

, , . , .

(modal) (modeless).

, . . OK Cancel. .

. . , .

. Windows , .

 

(Picture control) , ,
(Static text) . ( ) . .
(Group box) , .
(Button) , , -
(Check box) , , , .
(Radio button) , . .  
(List control) (), .
(Edit control) . .
(Combo box) ,
(Scroll bar) .

 

, . , , . :

HWND GetDlgItem(

HWND hDlg, // int nIDDlgItem // );

, - 0.

(enabled) (disabled).

.





:


: 2016-11-18; !; : 582 |


:

:

, , 1:10
==> ...

1691 - | 1624 -


© 2015-2024 lektsii.org - -

: 0.053 .