《MFC小技巧(更换皮肤背景标题栏透明)》由会员分享,可在线阅读,更多相关《MFC小技巧(更换皮肤背景标题栏透明)(4页珍藏版)》请在金锄头文库上搜索。
1、1.背景透明在MainFrame.Cpp 中找到int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)函数添加代码SetWindowLong(this-GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this-GetSafeHwnd(), GWL_EXSTYLE)0x80000);/ 添加库HINSTANCE hInst = LoadLibrary(User32.DLL); if(hInst) typedef BOOL (WINAPI *ShowLayer)(HWND,COLORREF,BYTE,DWOR
2、D); ShowLayer fun = NULL;/ 读取函数指针fun = (ShowLayer)GetProcAddress(hInst, SetLayeredWindowAttributes);if (fun)fun(this-GetSafeHwnd(), 0, 230, 2);FreeLibrary(hInst); HBITMAP startpic;CStatic startPics;startpic=(HBITMAP) :LoadImage(NULL,snakeNet.bmp,IMAGE_BITMAP,110,50,LR_LOADFROMFILE|LR_DEFAULTSIZE);st
3、artPics.Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE,CRect(200,457,200+110,457+50),this,NULL);startPics.SetBitmap(startpic);GetSafeHwnd(), 0, 230, 2);里面的参数230是改变透明度对话框的函数好像不一样2.更换背景图片首先先找一张图片 将其格式转换成 .Bmp 格式然后在VC中 ctrl +R 新建一个bitmap 资源然后在资源栏中右击 选择引入然后选择你的那张BMP格式图片 出现这个不用理然后在View类中添加 CBru
4、sh 类型的 m_brushBackground变量然后在View的构造函数中添加代码CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP2); /加载位图 m_brushBackground.CreatePatternBrush(&bmp); /创建位图画刷其中IDB_BITMAP2是你图片的ID号然后在OnDraw(CDC* pDC)函数中添加代码CRect rect; GetClientRect(rect);/取得客户区域 pDC-FillRect(rect,&m_brushBackground); /用背景画刷填充区域然后调试就发现背景好看多了3.标题栏标题栏图标找一个IOC格式的图片 直接把名字改成工程文件夹中rs文件夹中的ico格式图片的名字直接替换就行了标题栏名字在App。CPP中找到初始化函数InitInstance()添加代码m_pMainWnd-SetWindowText(你的标题);4.更换皮肤MFC中有很多的破解版不收费的界面库自带了很多免费皮肤,也可以自己手绘皮肤 每个界面库的使用不一样 具体操作见各个库的使用手册。界面库可以帮助开发者摆脱MFC中鸡肋的灰色框框 。