⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_49676.htm

📁 vc
💻 HTM
字号:
<p>
序号:49676 发表者:钟小立 发表日期:2003-08-12 22:08:05
<br>主题:关于加载图象问题
<br>内容:程序如下:<BR>问题是窗口中不显示位图,请大侠帮忙!<BR>#include &lt;windows.h&gt;<BR>long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);<BR>BOOL InitWindowsClass(HINSTANCE hInstance);<BR>BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);<BR>HFONT CreateFont(HDC hDC,int nCharHeight,int nCharWidth);<BR>HWND hWndMain;<BR>HDC hDC;<BR>HDC hdcmem;<BR>HBITMAP hBm;<BR>BITMAP bm;<BR>int iY=80;<BR>int iWindowWidth,iWindowHeight;<BR>char cUpWarn[]="已经达到顶部,不能再向上移动了";<BR>char cDownWarn[]="已经达到底部,不能再向下移动了";<BR>int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdline,int nCmdShow)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;MSG Message;//定义消息<BR>&nbsp;&nbsp;&nbsp;&nbsp;hBm=LoadBitmap(hInstance,"pic");//加载位图&nbsp;&nbsp; //可能是这地方有问题<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetObject(hBm,sizeof(BITMAP),(LPVOID)&amp;bm);<BR>&nbsp;&nbsp;&nbsp;&nbsp;iWindowWidth=2*bm.bmWidth;<BR>&nbsp;&nbsp;&nbsp;&nbsp;iWindowHeight=2*bm.bmHeight;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!InitWindowsClass(hInstance))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!InitWindows(hInstance,nCmdShow))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(GetMessage(&amp;Message,0,0,0))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TranslateMessage(&amp; Message);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DispatchMessage(&amp; Message);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return Message.wParam;<BR>}<BR>long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;PAINTSTRUCT ps;<BR>&nbsp;&nbsp;&nbsp;&nbsp;switch(iMessage)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;case WM_LBUTTONDOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iY=iY-10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect(hWnd,NULL,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;case WM_RBUTTONDOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iY=iY+10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect(hWnd,NULL,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;case WM_KEYDOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(wParam)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case VK_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iY=iY-10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case VK_DOWN:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iY=iY+10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect(hWnd,NULL,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case WM_CREATE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hDC=GetDC(hWnd);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hdcmem=CreateCompatibleDC(hDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReleaseDC(hWnd,hDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case WM_PAINT:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hDC=BeginPaint(hWnd,&amp;ps);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(iY&gt;0&amp;&amp;iY&lt;iWindowHeight/2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelectObject(hdcmem,hBm);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitBlt(hDC,60,iY,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(bm.bmWidth!=0||bm.bmHeight!=0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextOut(hDC,0,0,"no signal",9);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(iY&lt;=0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextOut(hDC,0,0,cUpWarn,sizeof(cUpWarn));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextOut(hDC,0,0,cDownWarn,sizeof(cDownWarn));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndPaint(hWnd,&amp;ps);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case WM_DESTROY:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeleteObject(hBm);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostQuitMessage(0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(DefWindowProc(hWnd,iMessage,wParam,lParam));<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;HWND hWnd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hWnd=CreateWindow("BitmapInstance","我的位图显示实例程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,iWindowWidth,iWindowHeight,NULL,NULL,hInstance,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!hWnd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hWndMain=hWnd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ShowWindow(hWnd,nCmdShow);//显示窗口<BR>&nbsp;&nbsp;&nbsp;&nbsp;UpdateWindow(hWnd);//刷新用户区<BR>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<BR>}<BR><BR>BOOL InitWindowsClass(HINSTANCE hInstance)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;WNDCLASS WndClass;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.cbClsExtra=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.cbWndExtra=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.hInstance=hInstance;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.lpfnWndProc=WndProc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.lpszClassName="BitmapInstance";<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.lpszMenuName="Menu";<BR>&nbsp;&nbsp;&nbsp;&nbsp;WndClass.style=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return RegisterClass(&amp;WndClass);//注册窗口类<BR>}<BR><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:佳明 回复日期:2003-08-12 22:20:26
<br>内容:hBm=LoadBitmap(hInstance,"pic");//加载位图&nbsp;&nbsp; //可能是这地方有问题<BR>你那个"pic"是文件名还是资源ID呀?<BR>如果文件名是pic.bmp,就写hBm=LoadBitmap(NULL,"pic.bmp");<BR>如果ID是IDC_PIC,就写hBm=LoadBitmap(hInstance,MAKEINTRESOURCE(IDC_PIC));<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -