.


:




:

































 

 

 

 





: Windows-

, , , , , . , . Windows, , WM_COMMAND, .

, WM_COMMAND. . :

LOWORD(wParam) - ( UINT);

HIWORD(wParam) - ( UINT);

lParam - ( HWND).

  • , CreateWindow, .
  • , Windows CreateWindow.
  • , , .

, , Windows : BN_ - button, EN_ - edit, LBN_ - listbox, CBN_ - combobox SB_ - scrollbar.

, - ID_button:

case WM_COMMAND:

{ UINT idCtl=LOWORD(wParam); //

UINT code=HIWORD(wParam); //

HWND hChild=(HWND)lParam; //

if(idCtl==ID_button&&code==BN_CLICKED)

{

//

CloseWindow(hWnd); // -

}

}; return 0;

, . .

  • ( WM_),

, , Windows : BM_ - button, EM_ - edit, LB_ - listbox, CB_ - combobox. scrollbar Set/Get - WinAPI.

.

  • - . PostMessage. , , . PostMessage .
  • - , . SendMessage. PostMessage SendMessage , .

( HWND) ( UINT), . .

  • hWndChild , :

UINT id=GetWindowLong(hWndChild,GWL_ID);

  • ( Dlg , ):

UINT id=GetDlgCtrlID(hWndChild);

  • id , :

HWND hWndChild=GetDlgItem(hWndParent,id);

hWnd edit. c hWndEdit (5 ):

static UINT ID_edit=3;

static HWND hWndEdit;

...

hWndEdit=CreateWindow("edit",NULL,

WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| WS_BORDER|ES_LEFT,

x,y,width,height,hWnd,(HMENU)ID_edit,hInst,NULL);

...

SendMessage (hWndEdit,EM_LIMITTEXT,5,0L);

...

. , ; , .

  • : .

, <Tab> <Shift+Tab>.

, (window subclassing, , ).

  • Windows. , GetWindowLong, GWL_WNDPROC.

SetWindowLong , .

  • , Windows , , .

, , <Tab> <Shift+Tab> SetFocus ( ) . CallWindowProc.

( button)

WM_COMMAND BN_CLICKED. , - . :

case WM_COMMAND:

{ UINT idCtl=LOWORD(wParam); // .

UINT code=HIWORD(wParam); //

HWND hChild=(HWND)lParam; // .

if(idCtrl==ID_button&&code==BN_CLICKED)

{

// ,

// ID_button

...

}

}; return 0;

BS_3STATE , : ( ), ( ), ( )
BS_AUTO3STATE BS_3STATE,
BS_AUTOCHECKBOX , : .
BS_AUTORADIOBUTTON , : ( ) ( ).
BS_CHECKBOX , : .
BS_DEFPUSHBUTTON
BS_GROUPBOX , . .
BS_LEFTTEXT , , , ,
BS_OWNERDRAW , ,
BS_PUSHBUTTON
BS_RADIOBUTTON , : .
BS_USERBUTTON , BS_OWNERDRAW. . SDK Windows 3.1, windows.h

 

:

  • BM_GETCHECK BM_SETCHECK - / - -;
  • BM_GETSTATE BM_SETSTATE - / ;
  • BM_SETSTYLE - .

,

  • , , WM_CTLCOLORBTN.
  • , , , , .

, , , .

  • (push buttons) , , CreateWindow.

- /. , BS_PUSHBUTTON BS_DEFPUSHBUTTON ( DEF default).

  • .
  • , , BS_DEFPUSHBUTTON .

, , . 0

, , WM_COMMAND BN_CLICKED.

, BM_SETSTATE. :

SendMessage(hWndButton,BM_SETSTATE,1,0l); // wParam=1

:

SendMessage(hWndButton,BM_SETSTATE,0,0l); // wParam=0

BM_GETSTATE. TRUE, FALSE ( 0), :

int press= SendMessage(hWndButton,BM_GETSTATE,0,0l);

if(press) { /* */ }

else { /* */ }

. /, BM_GETCHECK BM_SETCHECK .

-

  • (check boxes) ( BS_LEFTTEXT, ).

, , : ( ); ( ).

  • , . BS_CHECKBOX BS_AUTOCHECKBOX.

BS_CHECKBOX , BM_SETCHECK. WM_COMMAND BN_CLICKED ID_button :

case WM_COMMAND:

{ UINT idCtl=LOWORD(wParam); // .

UINT code=HIWORD(wParam); //

HWND hChild=(HWND)lParam; // .

if(idCtrl==ID_button&&code==BN_CLICKED)

{

int cur_label= SendMessage(hWndButton, BM_GETCHECK,0,0l);

SendMessage(hChild, BM_SETCHECK,(WPARAM)(!cur_label),0l);

}

}; return 0;

BS_AUTOCHECKBOX , WM_COMMAND.

( ), BM_SETCHECK c wParam, 1 ( 0 ):

SendMessage(hWndButton,BM_SETCHECK,1,0l);

, BM_GETCHECK:

int iCheck=SendMessage(hWndButton,BM_GETCHECK,0,0l);

TRUE ( 0), () FALSE ( 0), .

BS_3STATE BS_AUTO3STATE. , , BM_SETCHECK , 2.

  • , . .. - . , .

-

  • - (radio buttons, -) , , . , .

- BS_RADIOBUTTON BS_AUTORADIOBUTTON, . -, , . , -, .

WM_COMMAND BN_CLICKED - ID_button, , BM_SETCHECK wParam, 1. , BM_SETCHECK wParam, 0:

case WM_COMMAND:

{ UINT idCtl=LOWORD(wParam); // .

UINT code=HIWORD(wParam); //

HWND hChild=(HWND)lParam; // .

if(idCtrl==ID_button&&code==BN_CLICKED)

{

SendMessage(hChild,BM_SETCHECK,1,0l);

// -

SendMessage(hWndOtherButton,BM_SETCHECK,0,0l);

...

}

}; return 0;

 

( static)

  • - , static.

: , WM_COMMAND. .

  • .

CreateWindow. static , :

static UINT ID_static=2;

static HWND hWndStatic;

...

hWndStatic=CreateWindow("static",NULL,

WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| SS_GRAYRECT,

x,y,width,height,

hWndParent,(HMENU) ID_static,hInst,NULL);





:


: 2016-03-27; !; : 1331 |


:

:

,
==> ...

1923 - | 1837 -


© 2015-2024 lektsii.org - -

: 0.049 .