Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
Создаётся окно:
MainWindow = CreateWindowExW(
WS_EX_TOPMOST,
MainWindowClass.lpszClassName,
L"Test Player",
WS_POPUPWINDOW | SW_HIDE,
0,0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
nullptr, nullptr, hInstance, nullptr);
В обработчике WM_CREATE хочу сделать трей-меню с соответствующим именем ("Test Player" в данном случае):
case WM_CREATE:{
if( Menu ) break;
HINSTANCE hInstance = (HINSTANCE)GetWindowLongW(hWnd,GWL_HINSTANCE);
Menu = CreatePopupMenu();
int size = 24;
wchar_t name[size];
memset(name,0,size);
GetWindowTextW(hWnd,name,size);
wprintf(L"%ls / %d\n",name,GetWindowTextLengthW(hWnd)); // T / 1
memset(&Tray, 0, sizeof (NOTIFYICONDATAW));
Tray.cbSize = sizeof(Tray);
Tray.hWnd = hWnd;
Tray.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP | NIF_INFO;
Tray.uCallbackMessage = WM_TRAY_MENU;
Tray.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICO_MAIN));
wcscpy(Tray.szTip, name);
Shell_NotifyIconW(NIM_ADD, &Tray);
Но через GetWindowText
получаю только первую букву "T", соответственно и длину имени показывает в 1 символ при консольном выводе GetWindowTextLengthW(hWnd)
. Это имя будет динамическим, в зависимости от параметров инициализации приложения, поэтому делать его глобальным нельзя.
Как правильно получить имя окна в колбеке?
[UPDATE]
Кириллицу читает нормально, латиницу - нет. В уведомления могут посылаться разные комбинации символов, как типа A
, так и W
1) const int size = 24;
2) memset(name, 0, sizeof(name));
у вас memset занулит только половину массива, т.к. ожидает размер в байтах.
3) Project -> Properties -> General: Character Set изменить на Use Unicode Character Set вместо Multi-byte
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно сделать Гистограмму в wpf, но не простую, внутри каждой колонки гистограммы, должны быть другие маленькие колонки, сумма значений которых,...
Что же я прошу от вас(любому из этих пунктов я буду рад): 1)Скинуть видео урок или гайд как сделать такое управление 2)Дать ссылки на материал...