Microsoft KB Archive/126019

{|
 * width="100%"|

PRB: Most Common Cause of SetPixelFormat Failure

 * }

Q126019

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), used with:
 * Microsoft Windows NT Server versions 3.5, 3.51, 4.0
 * Microsoft Windows NT Workstation versions 3.5, 3.51, 4.0
 * Microsoft Windows 95
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Professional

-

SYMPTOMS
SetPixelFormat fails with incorrect class or window styles.

CAUSE
Win32-based applications that use Microsoft's implementation of OpenGL to render onto a window must include WS_CLIPCHILDREN and WS_CLIPSIBLINGS window styles for that window.

RESOLUTION
Include WS_CLIPCHILDREN and WS_CLIPSIBLINGS window styles when in a Win32- based application, you use Microsoft's implementation of OpenGL to render onto a window.

Additionally, the window class attribute should not include the CS_PARENTDC style. The two window styles can be added to the dwStyles parameter of CreateWindow or CreateWindowEX call. If MFC is used, override PreCreateWindow to add the flags. For example:

  BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs) {      cs.style |= (WS_CLIPCHILDREN | WS_CLIPSIBLINGS);

return CView::PreCreateWindow(cs); } For more information, please refer to "comments" section of the online documentation on SetPixelFormat.

STATUS
This behavior is by design.

Additional query words: 4.00

Keywords : kbOSWinNT400 kbOSWin2000 kbSDKWin32 kbOSWin95

Issue type : kbprb

Technology : kbAudDeveloper kbWin32sSearch kbWin32API