почему это окно richedit не появляется, когда я помещаю код в класс?

Он компилируется и работает без ошибок. Единственное, что окно не появляется. Деструктор должен оставаться вечно, пока я не закрою окно мышкой?

#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();
}

0

Решение

Ваша проблема здесь:

richEdit re();

Это не по-умолчанию, тип объекта richEdit, Объявление функции с именем re который не принимает аргументов и возвращает richEdit,

Вы хотите это вместо этого:

richEdit re;

…или в C ++ 11:

richEdit re{};

Обратите внимание, что блокировка деструктор это то, что, безусловно, даст вам головную боль в будущем.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]