DialogBox按钮不起作用。的win32 [英] DialogBox button isn't working . win32

查看:96
本文介绍了DialogBox按钮不起作用。的win32的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个项目,我试图打开另一个窗口(对话框),我正在尝试没有成功。

我到处寻找可能没找到答案。

我开了一个新项目试图把我尝试原始项目的命令放在一起但没有成功。我希望你能帮助我。以下是代码:

I have a project where I try to open another window (dialog) and I''m trying without success to do it.
I looked everywhere possible and not found an answer.
I opened a new project to try to put the commands I tried the original project and there was no success. I hope you can help me. Here are the codes:

#include "stdafx.h"
#include "resource.h"
#include <WinBase.h>
#include <commctrl.h>
#include <windows.h>
HWND hWnd;

BOOL CALLBACK DlgProc2 (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);
	switch(uMsg) 
	{

	case WM_INITDIALOG:	
		break;
	
	case WM_HOTKEY:
		break;

	case WM_COMMAND:
		{
			if(wParam == IDOK)
			{
				EndDialog(hWnd,0);
			}
		break;
		}

	case WM_CLOSE:
		EndDialog(hWnd, 0);
		break;

	case WM_DESTROY:
		EndDialog(hWnd, 0);
		break;

	default:
		break;
	}
	return 0;
}


BOOL CALLBACK DlgProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	//UNREFERENCED_PARAMETER(lParam);
	switch(uMsg) 
	{

	case WM_INITDIALOG:	
		break;
	
	case WM_HOTKEY:
		break;

	case WM_COMMAND:
		{
			if(wParam == IDC_BUTTON2)
			{
								TerminateProcess(GetCurrentProcess(), 0);
			}
	case IDC_BUTTON1: // Auto Loot
			{
			DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG2), hWnd, (DLGPROC)DlgProc2);
				}

		break;
		}

	case WM_CLOSE:
		EndDialog(hWnd, 0);
		break;

	case WM_DESTROY:
		EndDialog(hWnd, 0);
		break;

	default:
		break;
	}
	return 0;
}

DWORD WINAPI MainWin( HMODULE hModule){
	Sleep(500);
	DialogBox(hModule, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DlgProc);
	ExitThread(0);
	return 0;
}
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		DisableThreadLibraryCalls(hModule);
			CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainWin, hModule, 0, NULL);
			break;
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
			break;
	}
	return TRUE;
}










// Generated by ResEdit 1.5.11
// Copyright (C) 2006-2012
// http://www.resedit.net

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"




//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 186, 95
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{
    DEFPUSHBUTTON   "Button1", IDC_BUTTON1, 81, 14, 50, 14
    PUSHBUTTON      "Button2", IDC_BUTTON2, 84, 42, 50, 14
}



LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG2 DIALOG 0, 0, 186, 95
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{
    DEFPUSHBUTTON   "Button1", IDC_BUTTON1, 134, 25, 50, 14
    PUSHBUTTON      "Button2", IDC_BUTTON2, 117, 48, 50, 14
}







#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif

#define IDD_DIALOG1                             100
#define IDD_DIALOG2                             101
#define IDC_BUTTON1                             1002
#define IDC_BUTTON2                             1003

推荐答案



after
case WM_COMMAND:





你必须使用开关盒块





you must use switch case block

case WM_COMMAND:
    wmId    = LOWORD(wParam);
    wmEvent = HIWORD(wParam);
    // Parse the menu selections:
    switch (wmId){





依此类推



and so on


这篇关于DialogBox按钮不起作用。的win32的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆