我模仿别人的例子用vc6做了一个异形窗口,参考文章:http://topic.csdn.net/t/20051123/09/4411832.html   实现了一个1024×768的窗口,不知道怎样才能在窗口上添加按钮请多帮忙!

解决方案 »

  1.   

    异形窗口-->不规则窗口吧?
    添加Button与别的没有两样。
      

  2.   

    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;
    }
      

  3.   

    这个是我修改后的代码,总是不能通过编译
    另外还有:“error C2065: “ID_MENU_ABOUT”: 未声明的标识符”之类的错误
    也不知道怎么修改,还请大侠多帮忙!
      

  4.   

    缺少菜单资源:ID_MENU_ABOUT
    或者去掉,或者从别的程序拷贝一个。
      

  5.   

    谢谢dyw,弄了这么久终于搞定了,马上加分。