검색결과 리스트
B에 해당되는 글 1건
- 2013.03.07 BN_CLICKED, BM_CLICK
의문점:
SubClassing으로 Button Window를 연결했을때
Click Message를 받을려면 어떻게 해야하는가?
BN_CLICKED : Button에서 "Click"시 발생한 메세지를 부모에게 메세지로 보내준것이다
아래의 코드를 보면
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case ID_BUTTON3:
switch(wmEvent)
{
case BN_CLICKED:
MySend();
EditAddLast(hEdit,"BN_CLICKED");
break;
case BM_CLICK:
MySend();
EditAddLast(hEdit,"BM_CLICK");
break;
}
break;
}
break; |
결과를 출력하게 되어있다. (EditAddLast는 개인적인출력함수)
결과를 보면
부모Procedure에서는 BN_CLICKED가 발생됨을 확인할 수 있다.
asdasd가 씌어진 부분은 Edit Window 이다.
EditWindow에서 VK_RETURN ( 엔터키 )에 Button이 눌린것처럼 Message를 보냈다.
case WM_KEYDOWN:
if (wParam == VK_RETURN)
{
SendMessage(GetDlgItem(g_hWnd,ID_BUTTON3), BM_CLICK, 0, 0);//SendMessage버튼이 클릭되게 메세지 보냄
SetFocus(GetDlgItem(g_hWnd,ID_EDIT2));
}
return false; |
VK_RETURN ( 엔터키 ) 가 눌린경우 역시 BN_CLICKED 메세지가 발생된다.
SubClassing을 한 상태이다
|
message값을 알아보기위해 여러가지 상황별로 셋팅해두었다.
->복잡하니 실제 발생된 결과값을 보자
두번 클릭했을경우의 값이다
<WINUSER.h> 를 보면
위의 데이터를 해석해보면
f3 : STATE를 변경한다 (눌렀다가)
f3 : STATE를 변경한다 (뗐다가)
215 : CAPTURECHANGED [ MSDN ] When it receives this message, a window should redraw itself
윈도우 자신을 다시그리고있을때(클릭하면 모양 바뀌자너?)
BM_SETSTATE 살펴보면
A BOOL that specifies whether the button is highlighted. A value of TRUE highlights the button. A value of FALSE removes any highlighting.
Not used.
CEdit의 EN_CHANGE 와 EN_UPDATE 의 차이점 (0) | 2013.04.13 |
---|---|
WINAPI] GetOpenFileName (0) | 2013.03.18 |
IExplore Tab관련, 최상위창 만들기 (0) | 2013.02.23 |
ListBox Message, LB_메세지 종류 (0) | 2013.02.23 |
RECENT COMMENT