在设定了主页面与缓冲区后台并定义了DESC后``
在装载位图时出没有任何图象出现
请问各位达人是怎么回事``
在装载位图时出没有任何图象出现
请问各位达人是怎么回事``
解决方案 »
- mfc中PreTranslateMessage调用dlg.Domdal,返回IDOK后出错怎么办
- 急!!vc++6.0为什么在debug下不能设置断点?
- 读取文件 出的问题
- SetWindowPos 怎么没有移动???谢谢
- 在串口通讯中,一个字节里,先传送低位,还是先传送高位??50
- 窗口原点和视口原点干什么用地?
- PreTranslateMessage(MSG* pMsg)为什么不能接收汉字的两个字节?
- 有些人对我说,VC不是主流,将来对程序员发展不像其他程序员那样广,是吗???
- 有C语言的基础,以前用delphi做数据库,现想学Visual c++,请大家推荐几本好书啊。下载网址也行,谢谢。
- 我是初学者,请问电子工业的《VC++宝典如何》?
- 这个东东是个什么东东?
- 请教如何在一个Edit类的对象中实时的显示文字信息?
#include <windows.h>#include <ddraw.h>
HBITMAP hBitmap;
HDC hmdc;
HDC hdcsurf=NULL;
HINSTANCE hInstance;
DDSURFACEDESC ddsd;
LPDIRECTDRAW lpDD; //DirectDraw对象
LPDIRECTDRAWSURFACE lpDDSPrimary; // 主页面
LPDIRECTDRAWSURFACE lpDDSBack;
LPDIRECTDRAWSURFACE pdds; // 缓冲页面
LPDIRECTDRAWSURFACE lpDDSBackGround;// 背景页面
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){hBitmap=(HBITMAP)LoadImage(0,".\\ss.bmp",IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE); static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ; MSG msg ; WNDCLASS wc ; wc.style = CS_HREDRAW | CS_VREDRAW ; wc.lpfnWndProc = WndProc ; wc.cbClsExtra = 0 ; wc.cbWndExtra = 0 ; wc.hInstance = hInstance ; wc.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wc.hCursor = LoadCursor (NULL, IDC_ARROW) ; wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wc.lpszMenuName = NULL ; wc.lpszClassName = szAppName ;
if (!RegisterClass (&wc)) { MessageBox (NULL, TEXT ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, // window class name TEXT ("欢迎你的到来!"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ;} LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
switch (message) { case WM_PAINT:
DWORD dwFlags;
DDSCAPS ddscaps;
DirectDrawCreate(NULL, &lpDD, NULL);
dwFlags = DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN;
lpDD->SetCooperativeLevel(hwnd, dwFlags); lpDD->SetDisplayMode( 1024, 768, 16); ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE |
DDSCAPS_FLIP |
DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
//创建缓冲页面
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
lpDDSPrimary->GetAttachedSurface(&ddscaps, &lpDDSBack); lpDDSPrimary->GetSurfaceDesc (&ddsd);
lpDDSPrimary->GetDC(&hdcsurf);
hmdc=CreateCompatibleDC(NULL);
SelectObject(hmdc,hBitmap);
BitBlt(hdcsurf,0,0,1024,768,hmdc,0,0,SRCCOPY);
DeleteDC(hmdc);
lpDDSPrimary->ReleaseDC(hdcsurf);
return 0;
case WM_KEYDOWN:
case WM_LBUTTONDOWN:
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ;}