В моем приложении для Windows я создаю новое окно с помощью функции CreateWindow ().Регистрация и создание окна:
// Set up the capture window
WNDCLASS wc = {0};
// Set which method handles messages passed to the window
wc.lpfnWndProc = WindowMessageRedirect<CStillCamera>;
// Make the instance of the window associated with the main application
wc.hInstance = GetModuleHandle(NULL);
// Set the cursor as the default arrow cursor
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
// Set the class name required for registering the window and identifying it for future
// CreateWindow() calls
wc.lpszClassName = c_wzCaptureClassName.c_str();
RegisterClass(&wc); /* Call succeeding */
HWND hWnd = CreateWindow(
c_wzCaptureClassName.c_str() /* lpClassName */,
c_wzCaptureWindowName.c_str() /* lpWindowName */,
WS_OVERLAPPEDWINDOW | WS_MAXIMIZE /* dwStyle */,
CW_USEDEFAULT /* x */,
CW_USEDEFAULT /* y */,
CW_USEDEFAULT /*nWidth */,
CW_USEDEFAULT /* nHeight */,
NULL /* hWndParent */,
NULL /* hMenu */,
GetModuleHandle(NULL) /* hInstance */,
this /* lpParam */
);
if (!hWnd)
{
return false;
}
ShowWindow(hWnd, SW_SHOWDEFAULT);
UpdateWindow(hWnd);
Я продолжаю использовать окно и обновляю его потоковым видео, которое работает правильно.Однако, кажется, что все, что я передаю в качестве параметра dwStyle CreateWindow (), игнорируется.Окно не имеет заголовка, кнопок свертывания или разворачивания, как можно ожидать от перекрывающегося окна.Кроме того, окно не развернуто.Как ни странно, изменение dwStyle на
WS_OVERLAPPEDWINDOW | WS_HSCROLL /* dwStyle */
теперь показывает двухстороннюю стрелку влево / вправо при наведении на окно, но без реальных полос прокрутки.У кого-нибудь есть идеи, что может быть причиной такого странного поведения?