编辑框闪烁

时间:2014-12-16 01:54:04

标签: c++ winapi window editbox

我正在尝试在Win-32应用程序中创建一个编辑框,但是遇到了一些麻烦。它只会在我的鼠标移动,同时点击和拖动的情况下显示,并且它会在可见度内闪烁;

我像这样创建我的初始窗口:

m_hWnd = CreateWindow(m_wWindowName.c_str(), m_wWindowName.c_str(), 
        WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, width, height, 0, 0, m_hInstance, this); 

然后我尝试在现有窗口中创建一个新的编辑框:

CreateWindowEx(WS_EX_CLIENTEDGE, 
        TEXT("Edit"), TEXT(""),
        WS_CHILD | WS_VISIBLE,
        10, 80,
        200, 20,
        m_hWnd, (HMENU)1, NULL, NULL);

编辑: 我通过执行以下操作在自己的类中创建我的初始窗口

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
                   PSTR cmdLine, int showCmd)
{
    CApplication Application;
    Application.Initialise(hInstance, MainWndProc, L"GUI Tool");

    return Application.Run();
}

初始化函数创建窗口,然后直接在(仍在初始化函数中)我尝试创建编辑框。

有人可以提供一些帮助,说明为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:3)

听起来你正在WM_PAINT处理程序中对控件的顶部进行绘制(或者这是由DefWindowProc完成的。)

最简单的解决方案是在父窗口上设置WS_CLIPCHILDREN样式,这样会在绘画时自动剪切出任何子窗口。