对话框无效 - win32 api

时间:2016-01-09 22:21:00

标签: c windows winapi

使用MSVC ++ 2010制作程序。在对话框程序工作之前,代码编译和消息框但不会弹出对话框。但是,如果我使用相同的代码到Dev-C ++它运行正常,但不是所有的下拉列表组合框显示。

switch (message)
{
case WM_CREATE:
    MessageBox(hWnd, L"Run",L"Message",0);//Just for clarity
    DialogBox(((LPCREATESTRUCT)lParam)->hInstance,L"CHOICEBOX",hWnd,ComboDlg);
    return 0;

INT_PTR CALLBACK ComboDlg(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){//Dialog proc
int i=0; static int firsttime=1; PWSTR input=NULL;
switch(message)
{
case WM_INITDIALOG:
    //Dropdown combobox initialization
        return (INT_PTR)TRUE;

CHOICEBOX DIALOGEX 0, 0, 385, 279      //.rc
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
CAPTION "Select Category"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
//comboboxes and static text controls
END

2 个答案:

答案 0 :(得分:1)

在您的资源文件中,将L"Select Category"替换为"MS Shell Dlg"L"MS Shell Dlg"替换为AlarmManager.AlarmClockInfo等。

下次发布一个完整的代码,我们可以编译和测试。

答案 1 :(得分:1)

考虑到对汉字的最后评论。

要使用 PCWSTR 而非 const char *或PCSTR 的数据类型。 所以正确的语法应该是PCWSTR Choice[]={L"string1", L"string2", L"etc"};

请在每个字符串之前考虑L,因为MSVC ++在IDE上使用了UNICODE或UNICODE。

相关问题