×÷Õߣº¶À¹Âº®Ïø E-mail£ºblode@peoplemail.com.cn Ï£ÍûÓë¹ã´ó±à³Ì°®ºÃÕßÖ÷½»Á÷£¬ ÏÖÔÚµÁQQµÄ¹¤¾ß¿ÉÕæÊÇÊý²»Ê¤Êý£¬ÀûÓõ½µÄ¼¼ÊõÎ޷ǾÍÊÇö¾Ù´°¿Ú£¬µÃµ½´°¿ÚµÄ¾ä±ú£¬Ôٵõ½ÃÜÂ룬»òÕ߸߼¶Ò»µãÀûÓù³×ÓʵÏÖ£¨±¾È˵ġ¶QQ´óµÁ×ÓҹƬ¡·¾ÍÊÇÕâÑùʵÏÖ£©TENCENTΪÁË·ÀÖ¹QQÃÜÂë±»µÁ¿ÉÒÔ˵ÊÇ»¨¾¡ÁËÐÄ˼¡£ ½ñÌìÏÐÀ´ÎÞÊ£¬ÔٴζÔQQµÇ¼´°¿Ú½øÐÐÁËÑо¿£¬ÖÕÓÚ·¢ÏÖÌÚѶQQµÇ¼´°¿ÚµÄһЩÃÜÂë¡£²¢ÒÔÒ»¸öÀý³ÌÀ´ËµÃ÷ÈçºÎʵÏÖ¡£ Ê×ÏÈÈÃÎÒÃÇÀ´¿´¼¸ÕŹØÓÚQQµÇ¼´°µÄͼƬ£¨ÎÒµÄQQ°æ±¾£º0825£¬£©£º ͼһ ͼ¶þ ÎÒÃÇÓÃALT+TABÇл»´°¿Ú£¬»á·¢ÏÖµ±Çл»µ½QQµÇ¼£¬×¢²áÏòµ¼´°¿Úʱ£¬ÏÔʾµÄÊǿյģ¬ÉõÖÁ»¹»á³öÏÖÏÂÃæÕâÖÖÇé¿ö£º ͼÈý ÓÉ´ËÎÒÃÇ¿ÉÒԵóöÒ»¸ö½áÂÛ£º QQµÄµÇ¼´°¿Ú±êÌâ±¾ÉíÊÇÉèµÄ¿ÕµÄ£¬È»ºÏÔÙ¼ÓÉÏÒ»¸ö¼ÙµÄ±êÌ⣺¡°QQÓû§µÇ¼¡±¡°QQ×¢²áÏòµ¼¡±£¬ÕâÑù¾Í¿ÉÒÔ·ÀÖ¹±ðÈËÓÃFindWindowÀ´µÃµ½´°¿ÚµÄ¾ä±ú£¬µ±±ðÈËö¾Ù´°¿ÚÃûΪ¡°QQÓû§µÇ¼¡±»ò¡°QQ×¢²áÏòµ¼¡±µÄ´°¿Úʱ£¬½á¹ûÊǸù±¾ÕÒ²»µ½¡£ÒòΪËüÏÔʾµÄ±êÌâÊǼٵġ£TENCENTµÄ¼¼ÊõÈËÔ±»¹ÕæµÄÏëÁËÊ¡£²»¹ý£¬ÒªµÁÈ¡QQÃÜÂëѧÊǺÜÈÝÒ×£¬Òª²»Õâô¶àµÄµÁQQÃÜÂëµÄ¹¤¾ß»¹ÕýÈÕÒ¹¹¤×÷×Å£¿ ÕâЩÎÒÃǹز»¹ØÐÄ£¬µÁÄÇô¶àQQҲûʲôÓá£QQ±¾À´¾Í²»ÊǸöºÃ¶«Î÷£¬ÎÒÃǹØÐĵÄÊÇËüÔõôʵʵÒþ²ØÕæÕý´°¿Ú±êÌâµÄ£¿Ëµ°×Á˺ܼòµ¥¡£ÏÂÃæÎÒÃÇÔÚVCÏÂÒÔÒ»¸öÀý³ÌÀ´ËµÃ÷ÕâÒ»¼¼Êõ¡£ 1£ºÐ½¨Ò»¸ö»ùÓÚ¶Ô»°¿òµÄ³ÌÐò£¬ÃûΪex_edit 2£ºÔÚ¶Ô»°¿òÊôÐÔÖн«¶Ô»°¿òµÄ±êÌâɾ³ý£¬ÕâÑù¾ÍΪ¿ÕÁË¡£Íê³ÉÁËһС°ë 3£ºÔÚ¶Ô»°¿òµÄʵÏÖÎļþÖÐ(.cpp)ÖØÔØDefWindowProcº¯Êý£¬ÔÚÕâÀïÃæÅжϼ¸¸öÏûÏ¢£¨WM_NCPAINT£¬WM_NCACTIVATE£¬WM_SYSCOMMAND£©ÔÚÕâÀï˳±ã˵Ï£º WindowsÖØ»æ·Ç¿Í»§ÇøµÄ»úÖÆÈçÏ£º´¦ÀíÒÔÉÏÈý¸öÏûÏ¢ºó£¬ÚÝÓÃCWndÀàµÄĬÈÏÏûÏ¢´¦Àíº¯Êý£ºDefWindoeProc£¬Ôڴ˺¯ÊýÖжԷǿͻ§Çø½øÐÐÖؽá²Ù×÷¡£½øÈëÕýÌâ¡£¡£¡£ Ð޸ĺóµÄDefWindowProcº¯ÊýÈçÏ£º LRESULT CEx_editDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { LRESULT lst=CDialog::DefWindowProc(message, wParam, lParam); if(!::IsWindow(m_hWnd)) { return lst; } if(message=WM_NCPAINT||message==WM_NCACTIVATE||WM_SYSCOMMAND) { CDC *pDC=GetWindowDC(); if(pDC) DrawTitleBar(pDC); //×Ô¶¨Ò庯Êý£¬ÓÃÓÚ¼ÓÈë×Ô¶¨Òå±êÌâ ReleaseDC(pDC); } return lst; } 4£º¼ÓÈëDrawTitleBar×Ô¶¨Ò庯Êý£¬ÆäʵÏÖÈçÏ£º void CEx_editDlg::DrawTitleBar(CDC *pDC) { if(!m_hWnd) return ; CRect rtWnd,rtTitle; GetWindowRect(&rtWnd); rtTitle.left=GetSystemMetrics(SM_CXFRAME)+GetSystemMetrics(SM_CXSMICON)+3; rtTitle.top=GetSystemMetrics(SM_CYFRAME)+2; rtTitle.right=rtTitle.left+rtWnd.Width(); rtTitle.bottom=rtTitle.top+GetSystemMetrics(SM_CYSIZE); pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(255,255,255)); CFont mFont; mFont.CreateFont(12,0,0,0,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"MyFont"); //´´½¨Ò»ÖÖ×ÖÌ壬ʹÎÒÃǵÄ×Ô¶¨Òå±êÌâºÍϵͳ±êÌâ¸üÏàÏñ CFont *font=(CFont*)pDC->SelectObject(&mFont); pDC->DrawText("ÎҵıêÌâÀ¸",&rtTitle,DT_LEFT|DT_SINGLELINE); } ÕâÀïÃæÉæ¼°µ½GetSystemMetricsº¯Êý£¬´ó¸ÅµÄ½²Ï£º Ëü·µ»ØÓëwindows»·¾³ÓйصÄÐÅÏ¢ ·µ»ØÖµ Long£¬È¡¾öÓÚ¾ßÌåµÄ³£ÊýË÷Òý£¬ÉÏÃæÉæ¼°µ½µÄ²ÎÊýº¬ÒåÈçÏ£º SM_CXSMICON, SM_CYSMICON Сͼ±êµÄ´óС SM_CXFRAME, SM_CYFRAME ³ß´ç¿É±ä±ß¿òµÄ´óС SM_CXICON, SM_CYICON ±ê׼ͼ±êµÄ´óС ºÃÁË£¬±àÒëÔËÐп´Ï£ºÈçͼ£º ͼËÄ Í¼Î壺 ´ó¼Ò»á·¢ÏÖ£¬ÎÒÃǵijÌÐòÔÚÇл»´°¿Úºó£¬Ôõô¶¼²»»á³öÏÖ¿Õ±êÌâµÄÇé¿ö£¬Ò²¾Í˵±ÈTENCENTµÄQQ×¢²áÏòµ¼´°¸üºÃ£¬¿ÉÄÜÊÇËûÃǼ¼ÊõÈËÔ±Íü¼Ç´¦Àíij¸öÏûÏ¢ÁË¡£ |