- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试生成这个简单的 Windows 对话框,但是一旦我启动它,它就会报告“错误 x715”,这意味着 hDialog
没有在 int WINAPI WinMain 中正确创建()
函数。它编译得很好。
我在 Visual Studio 2010 中工作,它是一个“Visual C++ -> Empty Project
”项目。
这是完整的main.cpp
文件,也是项目中唯一的文件:
#include "windows.h"
#define DLG_MAIN 200 // ID for dialog
#define DLG_ICON 30000 // IDs for icons
#define DLG_ICON_S 30000
#define IDC_QUIT 1011 // ID for "quit"-button
#define IDC_INFO 2000 // ID for "info"-button
#define ID_TIMER 1 // ID for timer
#define IDC_STATIC -1 // ID for all labels
#define TIMER_INTERRUPT 500 // timer msg interval in msec
HINSTANCE TheInstance = 0; // instance handle of this program
// Our main function
void lalala(HWND hwnd)
{
/*Doesn't do anything yet.*/
}
// Windows passes messages to application windows to indicate "something"
// needs to be done
BOOL CALLBACK DialogProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
// set the time to generate a timer message (WM_TIMER)
SetTimer(hwnd, ID_TIMER, TIMER_INTERRUPT, NULL);
return TRUE;
case WM_TIMER:
// a timer msg was received so call our main function!
lalala(hwnd);
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_INFO:
// the info button on the window was pressed
MessageBox(hwnd, "<show some info>", "The Jonas Brothers are way better than Nick Cave ever was.", MB_OK);
return TRUE;
case IDC_QUIT:
// the quit button on the window was pressed
PostQuitMessage(0);
return TRUE;
}
return TRUE;
case WM_DESTROY:
// this app is about to be closed so kill the timer
KillTimer(hwnd, ID_TIMER);
PostQuitMessage(0);
return TRUE;
case WM_CLOSE:
// destroy the window
DestroyWindow (hwnd);
return TRUE;
}
return FALSE;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char * cmdParam, int cmdShow)
{
TheInstance = hInst;
HWND hDialog = 0;
hDialog = CreateDialog (hInst, MAKEINTRESOURCE (DLG_MAIN), 0, (DLGPROC)DialogProc);
if (!hDialog)
{
char buf [100];
wsprintf (buf, "Error x%x", GetLastError ());
MessageBox (0, buf, "CreateDialog", MB_ICONEXCLAMATION | MB_OK);
return 1;
}
HICON hIcon = LoadIcon (TheInstance, MAKEINTRESOURCE (DLG_ICON));
SendMessage (hDialog, WM_SETICON, WPARAM (TRUE), LPARAM (hIcon));
hIcon = LoadIcon (TheInstance, MAKEINTRESOURCE (DLG_ICON_S));
SendMessage (hDialog, WM_SETICON, WPARAM (FALSE), LPARAM (hIcon));
MSG msg;
int status;
while ((status = GetMessage (&msg, 0, 0, 0)) != 0)
{
if (status == -1) return -1;
if (!IsDialogMessage (hDialog, &msg))
{
TranslateMessage ( &msg );
DispatchMessage ( &msg );
}
}
return msg.wParam;
}
谁能告诉我为什么它在 hDialog = CreateDialog (hInst, MAKEINTRESOURCE (DLG_MAIN), 0, (DLGPROC)DialogProc);
处失败?
最佳答案
错误 0x715 是 ERROR_RESOURCE_NAME_NOT_FOUND,当它无法在资源部分找到具有您提供的名称的对话框时,您会收到此错误。无需为每个资源声明宏,只需使用 #include "resource.h"
关于c++ - WinApi CreateDialog 返回错误 715,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022553/
我正在尝试生成这个简单的 Windows 对话框,但是一旦我启动它,它就会报告“错误 x715”,这意味着 hDialog 没有在 int WINAPI WinMain 中正确创建() 函数。它编译得
以下代码向 wnd 返回 0,但紧接在 CreateDialog 之后,错误为 ERROR_SUCCESS。该对话框没有显示,我不明白这是怎么可能的。这是一个控制台项目,如果相关的话,对话框是在 vs
我有一个自定义对话框,它从用户那里收集两个字符串。创建对话框时,我使用 OK_CANCEL_OPTION 作为选项类型。 Evertyhings 可以正常工作,除非用户单击取消或关闭对话框时,它具有与
我想在 VBA 7.0 中创建一个无模式弹出对话框。到目前为止,最有希望的路线似乎是CreateDialog . 首先我尝试了 CreateDialogW 并收到 Entry point not fo
使用 Win32 API,是否可以在一个线程中创建一个窗口或对话框,然后从另一个线程为它收集事件? HWND 是否与线程绑定(bind)? 尝试下面的人为示例,我从未看到 GetMessage() 触
我从 JOptionPane 创建了 JDiolog var pane = new JOptionPane(e.getMessage(),JOptionPane.ERROR_MESSA
我正在使用 scintilla editor component 为我的项目编写一个编辑器.该编辑器用于内部脚本语言,具有剪切、复制、粘贴等所有基本功能。作为其中一项功能,我还提供了搜索功能。当用户按
我正在研究很久以前用 C++ 编写的 BHO,没有使用任何 VS 向导。因此,该项目偏离了 COM 约定和 COM 产品的样板。我很久以前就使用 COM,但从未真正做过任何 Windows GUI/对
使用 Win32 API,是否可以在一个线程中创建一个窗口或对话框,然后从另一个线程为它收集事件? HWND 是否绑定(bind)到线程? 尝试下面这个人为的例子,我从来没有看到 GetMessage
即使在大量谷歌搜索之后,我真的无法弄清楚如何制作无模式对话框。我想要做的是通过按下主窗口上的按钮来触发对话框。 (所以让我把所有的东西都放在这里。我之前没有把所有的东西都放上去,以免读起来太乱了。)
我目前正在开发一个 Win32 程序,它需要一个包含许多子窗口控件的主窗口 - 按钮、 ListView 等。我相信构建这样一个窗口的标准方法是首先为主窗口调用 CreateWindow,然后为每个控
我是一名优秀的程序员,十分优秀!