为什么当我把代码放在课堂上时,这个 richEdit 窗口没有显示?
why this richedit window doesn't show up when I put the code in class?
编译和运行没有错误。唯一的问题是窗户没有出现。析构函数应该永远保持直到我用鼠标关闭窗口?
#include <windows.h>
#include <richedit.h>
class richEdit {
HWND richeditWindow;
richEdit() {
HMODULE richedit_library = LoadLibrary("Msftedit.dll");
if (NULL == richedit_library) abort();
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(0);
richeditWindow = CreateWindowExW (
WS_EX_TOPMOST,
MSFTEDIT_CLASS,
L"window text",
WS_OVERLAPPED | WS_SYSMENU | ES_MULTILINE | WS_VISIBLE,
0, 0, 500, 500,
NULL, NULL, hInstance, NULL
);
}
~richEdit() {
MSG msg;
while( GetMessageW( &msg, richeditWindow, 0, 0 ) ) {
TranslateMessage( &msg );
DispatchMessageW( &msg );
}
}
};
int main() {
richEdit re();
}
你的问题在这里:
richEdit re();
不是richEdit
类型的默认构造的对象。是一个名为re
的函数的声明,该函数不接受参数并返回一个richEdit
。
你想要这样:
richEdit re;
…c++ 11:
richEdit re{};
请注意,阻塞析构函数将来肯定会给您带来麻烦。
相关文章:
- 有人能分解一下这个c++模板的语法吗
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 为什么在这个代码结束循环中没有得到结束
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何在BST的这个简单递归实现中消除警告
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 这个指针在c++中的用法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 书中的这个例子不好吗
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 为什么这个 c++ 代码打印出长度 5,当我打印出字符串时,程序会自动终止?
- 为什么这个音频包络不能通过开关的情况?
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 为什么 gcc 编译这个而 msvc 没有
- 这个函数哪里出错了
- 有人能帮我理解这个c++代码吗
- 有人能帮我处理这个链接列表吗?C++
- 为什么当我解模块化时,这个C++代代码"效率较低"?
- 为什么当我把代码放在课堂上时,这个 richEdit 窗口没有显示?