概述
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
昨天被LoadImage()给烦死了。
我只想在自己创建的窗口上显示一张位图,
这张位图的路径是 F:图片love.bmp
虽然说有种方法是把位图加载到工程的资源中,再通过它的ID引用它
但我只想通过图片路径进行加载,可就是不知道怎么做
我使用的IDE是VC++2010,语言是C++
源代码如下,我该如何修改??????????????
#include "windows.h"
#include "wingdi.h" MSG msg;
HINSTANCE hInst;
HBITMAP hbmp;
HDC mdc;
int xClient = 600; //窗口的左上角X坐标
int yClient = 600; //窗口的左上角Y坐标
static TCHAR CNAME[] = TEXT ("HelloWin") ; //窗口类标题
static TCHAR WNAME[] = TEXT ("GEN") ; //窗口类标题
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
void MyPaint(HDC hdc,int xClient,int yClient)
{
BitBlt(hdc, xClient, yClient, 200, 400, mdc, 0, 0, SRCCOPY);
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow){ HDC hdc;
HWND hwnd;
hInst = hInstance;
//
WNDCLASS wc = {CS_PARENTDC,WndProc,NULL,NULL,hInstance,NULL,NULL, (HBRUSH) CreateSolidBrush(0X00FFFF)//自定义背景刷子的颜色
,NULL,CNAME};
//
RegisterClass (&wc); //
hwnd = CreateWindow(CNAME,WNAME,WS_POPUP | WS_BORDER,//弹出的无标题有边框的窗口
xClient,yClient,200,400,NULL,NULL,hInstance,NULL); hdc = GetDC(hwnd);
mdc = CreateCompatibleDC(hdc);
hbmp = (HBITMAP)LoadImage(0,TEXT("F:\图片\love.bmp"), IMAGE_BITMAP, 200, 400, LR_LOADFROMFILE);
SelectObject(mdc, hbmp);
MyPaint(hdc,xClient,yClient);
//ReleaseDC(hwnd,hdc);
//return TRUE;
//
ShowWindow (hwnd, iCmdShow) ; //在显示器上显示窗口
UpdateWindow (hwnd) ; //绘制窗口 //-------------------------------------------------------------
while (GetMessage (&msg, NULL, 0, 0)){//消息循环
TranslateMessage (&msg) ; //将击键消息转换为字符消息
DispatchMessage (&msg) ; //将消息回传给Windows,由Windows转发给适当的窗口过程
//这里的窗口过程为WndProc()函数
}
return msg.wParam ;
//-------------------------------------------------------------
} //-------------------------------------------------------------
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){//窗口过程函数 PAINTSTRUCT ps;
HDC hdc; switch (message){ /*case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
MyPaint(hdc,xClient,yClient);
EndPaint(hwnd,&ps);*/
case WM_DESTROY:
DeleteDC(mdc);
DeleteObject(hbmp);
//ReleaseDC(hwnd,hdc);
PostQuitMessage (0) ;
return 0 ; /*无标题栏的窗口移动*/
case WM_LBUTTONDOWN:
SendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0);
break;
};
return DefWindowProc (hwnd, message, wParam, lParam) ; //处理所有窗口过程不予处理的消息
}
//-------------------------------------------------------------
最后
以上就是拼搏山水为你收集整理的在c语言中load,各位大神请进,叫人纠结的LoadImage(),如何加载位图?的全部内容,希望文章能够帮你解决在c语言中load,各位大神请进,叫人纠结的LoadImage(),如何加载位图?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复