如何在异形界面上添加按钮? 我模仿别人的例子用vc6做了一个异形窗口,参考文章:http://topic.csdn.net/t/20051123/09/4411832.html 实现了一个1024×768的窗口,不知道怎样才能在窗口上添加按钮请多帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 异形窗口-->不规则窗口吧?添加Button与别的没有两样。 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc,hdcmem; HBITMAP hbm; int x,y; int col; HMENU RightPopMenu; POINT MousePoint; TCHAR MenuTemp[MAX_PATH]; HRGN hrgn1,hrgn2; HWND hWnd11; //,hwnd if (create1==TRUE) { ShowWindow(hWnd,SW_HIDE); create1=FALSE; hrgn1=CreateRectRgn(0,0,wnd_width,wnd_longth); hdc = GetDC(hWnd); hbm=LoadBitmap(hInst,"plane"); hdcmem=CreateCompatibleDC(hdc); SelectObject(hdcmem,hbm); for (x=0;x<=wnd_width;x++) { for(y=0;y<=wnd_longth;y++) { col=GetPixel(hdcmem,x,y); if(col==16777215) { hrgn2=CreateRectRgn(x,y,x+1,y+1); CombineRgn(hrgn1,hrgn2,hrgn1,RGN_XOR); DeleteObject(hrgn2); } } } SetWindowRgn(hWnd,hrgn1,TRUE); DeleteObject(hrgn1); DeleteDC(hdc); ShowWindow(hWnd,SW_NORMAL); } hWnd11 = FindWindow("PHDHostClass",NULL) ; MoveWindow(hWnd11,772,10,252,384,TRUE); //4 switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_LBUTTONDOWN: { RightPopMenu=CreatePopupMenu(); GetPrivateProfileString("Menu","Download","Download", MenuTemp,MAX_PATH,LanguageIniPath); AppendMenu(RightPopMenu,MF_STRING,ID_MENU_SEARCH,MenuTemp); ////////////////////////////////////////////////////////// //这里添加右键菜单是否合适?编译时总是报LanguageIniPath错误! // ////////////////////////////////////////////////////////// } break; case WM_RBUTTONUP: PostQuitMessage(0); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hdcmem=CreateCompatibleDC(hdc); hbm=LoadBitmap(hInst,(LPCTSTR)ID_PLANE); SelectObject(hdcmem,hbm); BitBlt(hdc,0,0,wnd_width,wnd_longth,hdcmem,0,0,SRCCOPY); DeleteObject(hbm); DeleteDC(hdcmem); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0;} 这个是我修改后的代码,总是不能通过编译另外还有:“error C2065: “ID_MENU_ABOUT”: 未声明的标识符”之类的错误也不知道怎么修改,还请大侠多帮忙! 缺少菜单资源:ID_MENU_ABOUT或者去掉,或者从别的程序拷贝一个。 谢谢dyw,弄了这么久终于搞定了,马上加分。 VS2010TAB控件为什么无法显示其他页面呢? VC+gSOAP做dll与web service连接的问题 查询语句的参数问题! 深圳哪家软件公司比较好? 有没有关于串口的病毒?? 关于调用dll的问题 请问winxp下的编程是否和2000下的一样,有什么注意的地方吗,有什么新特性? 请问键盘上的方向键按下会产生什么消息,在哪个消息响应函数中进行处理? 帮忙看一下这个问题! 难!难! vc6 中编程问题 使用CFile类是不是就不能异步读写文件啦? 如何让窗口透明 为什么我的程序实现不了
添加Button与别的没有两样。
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc,hdcmem;
HBITMAP hbm;
int x,y;
int col; HMENU RightPopMenu;
POINT MousePoint;
TCHAR MenuTemp[MAX_PATH];
HRGN hrgn1,hrgn2;
HWND hWnd11; //,hwnd if (create1==TRUE)
{
ShowWindow(hWnd,SW_HIDE);
create1=FALSE;
hrgn1=CreateRectRgn(0,0,wnd_width,wnd_longth);
hdc = GetDC(hWnd); hbm=LoadBitmap(hInst,"plane");
hdcmem=CreateCompatibleDC(hdc);
SelectObject(hdcmem,hbm); for (x=0;x<=wnd_width;x++)
{
for(y=0;y<=wnd_longth;y++)
{
col=GetPixel(hdcmem,x,y);
if(col==16777215)
{
hrgn2=CreateRectRgn(x,y,x+1,y+1);
CombineRgn(hrgn1,hrgn2,hrgn1,RGN_XOR);
DeleteObject(hrgn2);
}
} }
SetWindowRgn(hWnd,hrgn1,TRUE);
DeleteObject(hrgn1);
DeleteDC(hdc);
ShowWindow(hWnd,SW_NORMAL);
} hWnd11 = FindWindow("PHDHostClass",NULL) ;
MoveWindow(hWnd11,772,10,252,384,TRUE); //4 switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break; case WM_LBUTTONDOWN:
{
RightPopMenu=CreatePopupMenu();
GetPrivateProfileString("Menu","Download","Download",
MenuTemp,MAX_PATH,LanguageIniPath);
AppendMenu(RightPopMenu,MF_STRING,ID_MENU_SEARCH,MenuTemp);
//////////////////////////////////////////////////////////
//这里添加右键菜单是否合适?编译时总是报LanguageIniPath错误! //
//////////////////////////////////////////////////////////
}
break; case WM_RBUTTONUP:
PostQuitMessage(0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hdcmem=CreateCompatibleDC(hdc);
hbm=LoadBitmap(hInst,(LPCTSTR)ID_PLANE);
SelectObject(hdcmem,hbm);
BitBlt(hdc,0,0,wnd_width,wnd_longth,hdcmem,0,0,SRCCOPY);
DeleteObject(hbm);
DeleteDC(hdcmem);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
另外还有:“error C2065: “ID_MENU_ABOUT”: 未声明的标识符”之类的错误
也不知道怎么修改,还请大侠多帮忙!
或者去掉,或者从别的程序拷贝一个。