2014-06-08 2 views
0

Google에서 주변을 둘러 보았으므로 다른 사람이 나를 도울 수 있는지 궁금합니다. 기회를 찾았지만 어떻게하는지 이해하지 못합니다. 기본적으로 내가 수행하고 싶은 일상이 무엇인가. 'a'버튼과 'b'버튼이있는 경우 'a'버튼을 누른 다음 messagebox를 열면 버튼 'b'를 누르면 새 창을 열고 해당 창에 대한 내용을 표시합니다.이벤트 감지 여부 - win32

미안하지만 너무 모호해서 기본적으로 응용 프로그램에는 2 개의 버튼이 있습니다. 1은 'a'라고하고 다른 하나는 'b'라고 표시합니다. 응용 프로그램에 어떤 종류의 루프를 실행하여 해당 단추가 눌러져 있는지 확인하는 방법은 무엇입니까? 첫 번째 버튼을 클릭하면 메시지 상자가 열리고 두 번째 버튼이 다른 창 클래스를 열면 메시지 상자가 열립니다. 그런 다음 어떻게하면 동일한 응용 프로그램에서 열리는 해당 창 클래스에 새 속성을 추가 할 수 있습니까?

나는 switch 문에서 WM_COMMAND 접근 방식을 취할 생각 이었지만, 해당 사례의 ID는 무엇이며 어떻게 각 단추에 해당합니까? -이 문제를 해결할 수있는 도움이 있다면 매우 감사하겠습니다. 코드 예제가 더 감사하게 될 것입니다.

건배

+0

http://msdn.microsoft.com/en-us/library/windows/desktop/bb761825%28v=vs.85%29.aspx –

+0

단추를 누르면 루프 검사가 실행되지 않습니다. 당신은 당신에게 뭔가를하라는 메시지가 나타날 때까지 기다립니다. 이벤트 중심. –

답변

1

모든 단추에는 숫자 ID가 있습니다. 모든 단추에 다른 ID를 부여하는 것이 좋습니다. 값을 선택하고이 숫자를 버튼에 할당하는 것은 사용자의 의무입니다.

환경에 따라 : 순수 Win32, MFC, 다른 것, 값을 정의하고 할당하는 세부 사항이 다릅니다. 창을 생성하는 동안 ID를 지정할 수 있습니다.

HWND WINAPI CreateWindow 
(
    _In_opt_ LPCTSTR lpClassName, 
    _In_opt_ LPCTSTR lpWindowName, 
    _In_  DWORD dwStyle, 
    _In_  int x, 
    _In_  int y, 
    _In_  int nWidth, 
    _In_  int nHeight, 
    _In_opt_ HWND hWndParent, 
    _In_opt_ HMENU hMenu, 
    _In_opt_ HINSTANCE hInstance, 
    _In_opt_ LPVOID lpParam 
); 

id는 hMenu 매개 변수로 전달됩니다. 자세한 내용은 http://msdn.microsoft.com/en-us/library/windows/desktop/ms632679(v=vs.85).aspx을 참조하십시오. Windows에서 ID가있는 창에는 메뉴가 없습니다. 우스운 이야기지만, 80 년대 중반에이를 구현 한 방법입니다.

일단 ID를 할당하면 WM_COMMAND 처리기에서 사용할 수 있고 사용해야합니다.

+0

Windows API와 MFC를 사용하여 리소스 ID를 할당하는 데 차이가 없습니다. 그들은 동적으로 컨트롤을 생성 할 때'CreateWindow'에 대한 호출로 전달되거나 대개 심볼 전처리 상수에 의해 앨리어싱 된 대화 상자 템플릿을 사용할 때 .rc 스크립트에서 지정됩니다. – IInspectable

+0

그래서 id를 지정하면, 예를 들어 HWND button1 = creatwindow() ...와 같은 의미이며 id는 button1입니까? 변수 인스턴스? – user3251225

+0

Id는 식별자의 이름이 아닌 숫자입니다. 나는 대답을 수정했다. –