start-想用按钮叫出对话框,可是不知在哪里出了问题,我是刚入门,各位高人帮我看看,大谢了。

问题描述

想用按钮叫出对话框,可是不知在哪里出了问题,我是刚入门,各位高人帮我看看,大谢了。

#include

#define ID_START 2

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK StartMenuProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("WBD");
MSG msg;
HWND hwnd;
WNDCLASS wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 10;
wndclass.cbWndExtra = 20;
wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, szAppName);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;

if (!RegisterClass (&wndclass))
{
    MessageBox (NULL, TEXT ("Need NT"), szAppName, MB_ICONERROR);

    return 0;
}

hwnd = CreateWindow (szAppName, TEXT ("WBD"), WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT,
    CW_USEDEFAULT, CW_USEDEFAULT,
    NULL, NULL, hInstance, NULL);

ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);

while (GetMessage (&msg, NULL, 0, 0))
{
    TranslateMessage (&msg);
    DispatchMessage (&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HINSTANCE hInstance;
static HWND hwndButton;
static RECT rect;
static int cxChar, cyChar;
HDC hdc;
PAINTSTRUCT ps;
static TCHAR szStart[] = TEXT ("Start");
switch (message)
{
case WM_CREATE:
hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
cxChar = LOWORD (GetDialogBaseUnits ());
cyChar = HIWORD (GetDialogBaseUnits ());

    hwndButton = CreateWindow (TEXT ("button"), szStart,
        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        30 * cxChar, 30 * cyChar,
        20 * cxChar, 7 * cyChar / 4,
        hwnd, (HMENU)ID_START,
        ((LPCREATESTRUCT)lParam)->hInstance, NULL);
    return 0;

case WM_SIZE:
    rect.left   = 24 * cxChar;
    rect.top    = 2 * cyChar;
    rect.right = LOWORD (lParam);
    rect.bottom = HIWORD (lParam);
    return 0;

case WM_PAINT:
    InvalidateRect (hwnd,&rect,TRUE);

    hdc = BeginPaint (hwnd, &ps);
    SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
    SetBkMode (hdc, TRANSPARENT);

    EndPaint (hwnd, &ps);
    return 0;

case WM_DRAWITEM:

case WM_COMMAND:
    switch (LOWORD (wParam))
    {
    case ID_START:
        DialogBox (hInstance, TEXT ("StartMenu"), hwnd, StartMenuProc);
        break;
    }
        return 0;

case WM_DESTROY:
    PostQuitMessage (0);
    return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam);

}
BOOL CALLBACK StartMenuProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG :
return TRUE;

case WM_COMMAND:
    switch (LOWORD (wParam))
    {
    case IDOK:
    //case IDCANCEL:
        EndDialog (hDlg, 0);
        return TRUE;
    }
    break;
}
return FALSE;

}

解决方案

这一段代码有问题吧
另外,调试一下看看能否执行到 ID_START 分支?

 case WM_DRAWITEM:

case WM_COMMAND:
    switch (LOWORD (wParam))
    {
    case ID_START:
        DialogBox (hInstance, TEXT ("StartMenu"), hwnd, StartMenuProc);
        break;
    }
        return 0;

解决方案二:

事先你准备好了DialogBox需要的对话框资源了么?
建议你用VC++的win32程序向导创建一个程序,在此基础上修改。

解决方案三:

这段代码莫非是利物浦的教材?

解决方案四:

RS文件有吗?查一下。就是写一个资源文件,然后编译

时间: 2024-08-17 21:20:51

start-想用按钮叫出对话框,可是不知在哪里出了问题,我是刚入门,各位高人帮我看看,大谢了。的相关文章

fckeditor在ie9中无法弹出对话框的解决方法(弹出层兼容问题)_网页编辑器

所以无论是想在页面编辑器里粘贴内容,还是上传图片等凡是需要弹出窗口操作的东西都会有问题,想要进行其它的操作也只能重新刷新页面.原因是 IE 9 不支持var $=document.getElementById;这样的写法了. 解决方法可以这么来做: 打开这个文件, fckeditor/editor/js/fckeditorcode_ie.js ,找到第 38行的这个方法:FCKTools.RegisterDollarFunction 将原来的 复制代码 代码如下: FCKTools.Regist

Cocos2d-x中实现弹出对话框示例_C 语言

在游戏中我们经常会看到弹出一个对话框让我们进行选择,今天我们就在cocos2dx中实现这个对话框.对话框说白了也是一个层,当我们点击某一个按钮的时候这个层被加进了当前的场景中,同时场景中的其他的层都是不可点击的,这个时候就涉及到触摸的优先级的一些问题,当然有些时候你也可以根据自己的需要让其他的层也可以点击,但是道理都是一样的,学会了这个其他的按照自己的要求去实现吧.下面我将弹出层单独分装成一个类,供我们调用. /*对话框场景类的头文件*/ #ifndef _POP_SCENE_H_ #defin

PHP控制前台弹出对话框的实现方法_php实例

应用场景: 微信授权登录过程中,需要用户确认,故衍生此需求: 相应的逻辑不放在前端的原因是,此部分逻辑属于偏功能业务,所以放在后端,方便统一管理. 解决办法: 通过php echo出javascript脚本,这里需要关注的一点是缓冲区. 缓冲区应该是有三个部分,分别是php.webserver.web browser,可以通过程序代码或配置文件做到实时输出,相对而言后台是可控的,但是前台不同浏览器缓冲机制是不同的,这里没有深入研究.我的解决方案是,允许非实时输出. 允许非实时输出的一个要求是,在

完美解决弹出网页或不定时弹出网页的办法_应用技巧

启动时弹出对话框   1.系统启动时弹出对话框,通常是一些广告信息,例如欢迎访问某某网站等.   2.开机弹出网页,通常会弹出很多窗口,让你措手不及,恶毒一点的,可以重复弹出窗口直到死机.   解决办法:弹出对话框,打开注册表编辑器,找到   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon  主键,然后在右边窗口中找到"LegalNoticeCaption"和"LegalNoticeT

文件读取-vc想通过单击按钮弹出对话框的方式选择某TXT文件

问题描述 vc想通过单击按钮弹出对话框的方式选择某TXT文件 我已经获取了文件路径,GetPathName,如何再获取文件中的数据 txt文件中的数据格式是这样的, 1 2 3 4 5 6 请问我接下来该怎么操作,才能使各个数据全部被提取出来. 解决方案 VC弹出"选择文件"和"选择文件夹"对话框VC弹出"选择文件"和"选择文件夹"对话框VC弹出"选择文件"和"选择文件夹"对话框

本人想做一个下载的demo,每次执行时页面会弹出对话框,“打开”,“保存”,“取消”。我想知道用户点的是哪个,好在后台处理记录信息。求帮助。

问题描述 本人想做一个下载的demo,每次执行时页面会弹出对话框,"打开","保存","取消".我想知道用户点的是哪个,好在后台处理记录信息.求帮助.或者有没相关的插件可以让我得到用户点击的是哪个按钮. 解决方案 解决方案二:点了之后,往后台post消息.解决方案三:就是不知道用户点的是哪个按钮啊.解决方案四:引用1楼skgary的回复: 点了之后,往后台post消息. 顶解决方案五:不知楼主的框是用啥弹得?js还是别的?应该都有获取对应按钮值的

python pyqt5-为什么点击按钮后直接关闭窗口了,没有弹出对话框呢?

问题描述 为什么点击按钮后直接关闭窗口了,没有弹出对话框呢? 为什么点击按钮后直接关闭窗口了,没有弹出对话框呢? # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'frmMain.ui' # # Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost!

jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)_jquery

我们在天猫进行购物的时候,经常会碰到单击删除按钮或者登陆按钮后,弹出对话框问你是否删除或者弹出一个登陆对话框,并且我们也是可以看到我们之前页面的信息,就是点击不了,只有对对话框进行操作后才有相应的变化.截图如下(以天猫为例)  如图所示,上面就是天猫的效果图,其实这就是通过jQuery实现的,并且实现的过程也不是很不复杂,那么现在就让我们来看看实现的过程吧. 首先是页面的布局部分:delete.html 复制代码 代码如下: <!DOCTYPE html> <html> <h

九种js弹出对话框的方法总结_javascript技巧

[1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 复制代码 代码如下: <script LANGUAGE="javascript"> <!-- window.open ("page.html") --> </script> 因为这是一段javascripts代码,所以它们应该放在<script LANGUAGE="javascript">标签和</s