首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么原因导致语言栏在win32应用程序中消失?

是什么原因导致语言栏在win32应用程序中消失?
EN

Stack Overflow用户
提问于 2013-11-05 15:50:04
回答 1查看 389关注 0票数 0

当我运行我的Win32应用程序时,Windows (在所有其他应用程序中都是可见的)在大约5秒后消失。如果我退出应用程序或alt选项卡到另一个应用程序,它将重新出现。如果我选择选项卡返回到我的应用程序,它将在5秒后再次消失。开关键也不起作用。

似乎系统已经得出结论,我的应用程序不“支持”语言栏。

为了启用语言栏,我需要做些什么吗?或者我不该做的事会让它消失?

应用程序只有一个自定义窗口(我在其中绘制DirectX图形)。我已经查看了CreateWindowRegisterClass的参数以及我处理的窗口消息(而不是传递给DefWindowProc),但是似乎没有任何东西与语言栏直接相关。

我只在Windows 7上测试过这个。

更新

这里是一个极简主义的例子。当我编译并运行此程序时,语言栏在5秒后消失:

代码语言:javascript
复制
#include <windows.h>

LRESULT CALLBACK wndproc(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
    return DefWindowProcW(hwnd, umsg, wparam, lparam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSW wc;
    wc.style = CS_DBLCLKS;
    wc.lpfnWndProc = wndproc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = GetModuleHandle(nullptr);
    wc.hIcon = 0;
    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
    wc.hbrBackground = 0;
    wc.lpszMenuName = 0;
    wc.lpszClassName = L"main_window";

    ATOM atom = RegisterClassW(&wc);

    DWORD win_style = WS_OVERLAPPEDWINDOW;

    RECT winrect;
    winrect.top = 100; winrect.bottom = 200; winrect.left = 100; winrect.right = 200;
    AdjustWindowRect(&winrect, win_style, false);

    HWND _hwnd = CreateWindowW(L"main_window", L"Application", win_style,
        winrect.left, winrect.top, winrect.right-winrect.left, winrect.bottom - winrect.top,
        0, 0, GetModuleHandle(0), 0);

    SetFocus(_hwnd);
    ShowWindow(_hwnd, SW_SHOW);
    UpdateWindow(_hwnd);

    MSG msg;
    while (true) {
        PeekMessage(&msg, _hwnd, 0, 0, PM_REMOVE);
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 18:16:37

这个片段是过滤消息:它将只处理发送到您刚刚创建的窗口的消息,而不是您的程序需要或使用的任何其他消息。在http://blogs.msdn.com/b/oldnewthing/archive/2005/02/09/369804.aspx上查看雷蒙德·陈的“过滤窗口消息的危险”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19793026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档