使用C ++ Win32 GUI在窗口中显示文本

user3197506

起初对我的英语很抱歉:)

我有一点问题。

我有一个用C ++编写的程序,该程序可以解析JavaScript文件以便找到一些关键字。

我有一个主窗口和一个主菜单,当您单击菜单->打开文件夹时,您需要选择文件夹。在此之后,我恢复了此文件夹中的所有文件以将其打开,请阅读它以找到我的关键字。一切正常后,我在子窗口中显示结果。我想添加一个显示诸如“正在加载,请稍候”之类的文本的弹出窗口,但是我有一个小问题。

这是我的代码:

// creating a "popup" display a text while loading
MainWindow::m_hwndResLoading = CreateWindow(   "edit",
    "",
    WS_VISIBLE|ES_MULTILINE|ES_READONLY|WS_OVERLAPPED,
    0,
    0,
    400,
    200,
    hwnd,
    NULL,
    NULL,
    NULL);

// creating my str, and asking my m_hwndLoading to display my text
string loading = "Chargement";
SetWindowText(MainWindow::m_hwndResLoading,TEXT(loading.c_str()));

MainWindow::projectPath = path;

// this function find every files in a specified directory which is source code file
getAllFile(path);

// creating my childwindow which will contain the result of the files parsing
MainWindow::m_hwndRes = CreateWindow(   "edit",
    "",
    WS_VISIBLE|WS_CHILD|WS_BORDER|
    WS_VSCROLL|WS_HSCROLL|ES_MULTILINE|
    ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_READONLY,
    0,
    0,
    1000,
    600,
    hwnd,
    NULL,
    NULL,
    NULL);

// create and instanciate my object
FileParser *fp;
fp = new FileParser();
string res = fp->init(files);

// close my loading "popup"
CloseWindow(MainWindow::m_hwndResLoading);

// display the result in my child window
SetWindowText(MainWindow::m_hwndRes,TEXT(res.c_str()));

当我运行该应用程序时,当我打开新文件夹时,显示“弹出窗口”,但没有加载文本。解析完成后,一切都很好,关闭了弹出窗口,并在子窗口中填充了结果。

我看到了,如果我对此行发表评论:

CloseWindow(MainWindow::m_hwndResLoading);

加载文本与结果显示在同一时刻。

有人有帮助我的想法吗?

非常感谢

安托万

我相信问题是缺少(win32)消息处理。我假设你AVE消息处理循环(如TranslateMessageDispatchMessage等)在你的代码的地方?

我认为您的问题是REPAINT在弹出窗口创建和长时间加载例程之间不处理消息(在这种情况下可能是消息)。这就是为什么您的弹出窗口不绘制并且应用程序冻结的原因。尝试在CreateWindow之间插入消息处理调用FileParser::init

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

win32 GUI在窗口中显示char数组变量中的文本

来自分类Dev

C Win32:窗口自动关闭

来自分类Dev

c ++ Win32多个窗口执行相同的操作

来自分类Dev

Poco C ++库和Win32 GUI集成

来自分类Dev

使用JNA从Win32 ListView检索项目文本

来自分类Dev

C ++如何使用Win32 API通过线程从文本框中获取文本

来自分类Dev

C ++,Win32错误

来自分类Dev

如何使用WIN32 API for C ++更改文本的颜色和大小?

来自分类Dev

使用Win32 C ++和钩子从应用程序中的按钮获取文本

来自分类Dev

Win32窗口未显示

来自分类Dev

为什么单击编辑框关闭Win32窗口(C ++)?

来自分类Dev

Win32 C ++将窗口位置设置为右下角

来自分类Dev

如何使用Win32在Windows中创建窗口焦点侦听器

来自分类Dev

有什么办法使用win32 api通过其标题获取窗口句柄?

来自分类Dev

如何使用 Win32 API 阻止来自透明窗口的鼠标输入?

来自分类Dev

如何在Gui win32编程中使用静态标签和按钮

来自分类Dev

使用自定义绘图在Win32 API中设置按钮文本颜色

来自分类Dev

Win32:使用cchTextMax在树形视图中设置文本长度

来自分类Dev

C ++中的Win32以中文显示...我做错了什么?

来自分类Dev

在C ++ Win32项目的最终exe文件中未显示图像(PNG)

来自分类Dev

如何在不使用C语言的system()的情况下清除win32 cmd控制台窗口?

来自分类Dev

如何在不使用C语言的system()的情况下清除win32 cmd控制台窗口?

来自分类Dev

Win32窗口创建失败?

来自分类Dev

HWNDHost内的Host Win32窗口

来自分类Dev

Win32窗口立即关闭

来自分类Dev

在Win32窗口中处理SDL事件

来自分类Dev

在Win32上处理CTRL + C

来自分类Dev

C ++ NetBeans Win32 hwnd图标

来自分类Dev

C ++ Win32:加速位图操作

Related 相关文章

热门标签

归档