|
|
?Visual C++??QQ?????
????????????????QQ??QQ???????????????????????????????????????????????????????????????????????QQ????????????????????????????????????????????????????????????????????????????? ??QQ?????????(????????)? ??QQ???????? ???????????? ????????????? ????QQ? ?????????????
 
?????????QQ??????QQ??????????????????????????????????????????????QQ?????? ???????????QQ????????????,???????????? ??1.??C?C++?VC?????? ??2.?????????? ??3.??????? ??4.??QQ?? ??5.??????????Visual C++, Resource Hack(??????.exe?.dll ?????????????????. ??????QQ????1.QQ?????????QQ????????????????????QQ??????????????????????????????????????????????????????????????????????????????????????????? ???Resource Hacker?????QQ.exe?????????????????.ico?????????????ICO????? ?????QQ????????QQface????QQ????????QQ???????????????????????????????100?QQ????????????????? ??2.???? ??QQ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????! ??3.???????? ???????????????????????QQ??????? ??4.????????????????? ??????????????????ctrl+alt+z??????????? ??5.????????? ???????????????????????????????? ??6.??????? ????????????????????? ??7.????????QQ ????QQ??????????????? ????????????3?7?????????
 
????????????????? ??????????????????????????????????????????????????????? ???????
NOTIFYICONDATA nid;//???????void CMyQQDlg: isplayInTask(){if(isDisplayInTask){//???nidnid.cbSize = sizeof(NOTIFYICONDATA);nid.hWnd =this->m_hWnd;nid.uID = IDR_QQMENU;nid.uFlags = NIF_ICON | NIF_TIP|NIF_MESSAGE ;nid.hIcon = m_hIcon;strcpy (nid.szTip, "?????");nid.uCallbackMessage=WM_DISPLAYTASKICON;Shell_NotifyIcon(NIM_ADD,&nid); isDisplayInTask=FALSE;}else{Shell_NotifyIcon(NIM_DELETE,&nid);isDisplayInTask=true;}}
????Shell_NotifyIcon??????????????NIM_ADD, NIM_MODIFY, NIM_DELETE,???????????????????????????????????????OnInitDialog??????????
isDisplayInTask=true;DisplayInTask(); //?????????;Sleep(500);OnOutline();Sleep(500);OnHidden();Sleep(500);OnOutline();Sleep(500);OnHidden();
?????????????????????????????????????? KillTime ???????? ????????????????????? ?????????????????????????????????????????????? ????????????? ????QQ?????????????????????????QQ???????????????????????  
 
????? ?????????????????????
// ????????????GetWindowRect(&dlgrect);MoveWindow(GetSystemMetrics(SM_CXSCREEN)-dlgrect.Width()-20, 0,dlgrect.Width(), dlgrect.Height(), true);///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ??????????????????GetDlgItem(IDC_QQFRIEND)->GetWindowRect(&rect0);ScreenToClient(&rect0);GetDlgItem(IDC_QQQUN)->GetWindowRect(&rect1);ScreenToClient(&rect1);
??????????????????????????
void CMyQQDlg::ChangeView(){?// ????????????if(TopButtonNum!=1&&clicknum==1)?{??//////////////////////////////////////////////////////////////////////////??// QQ?????????????// ????????// ?????????m_QQothers.MoveWindow(0, rect1.bottom,??rect0.Width(), rect0.Height(), true);??m_QQqun.MoveWindow(0, rect1.bottom-rect0.Height(),??rect0.Width(), rect0.Height(), true);???//////////////////////////////////////////////////////////////////////////??// QQ?? ??if(isBigFace)??{???m_List1.SetImageList(&m_imagelist2, LVSIL_SMALL);??}??else??{???m_List1.SetImageList(&m_imagelist1, LVSIL_SMALL);??}??m_List1.DeleteAllItems();??for(int i=1; i<34; i++)??{???m_List1.InsertItem(0xffff,"", -1);???m_List1.InsertItem(0xffff,"\n"+myClass[i-1], i);??}??m_List1.InsertItem(0xffff,"", -1);??//////////////////////////////////////////////////////////////////////////??// ????????QQ??, ?????????m_List1.ShowWindow(SW_SHOW);??m_List2.ShowWindow(SW_HIDE);??treeCtrl.ShowWindow(SW_HIDE);??return;?}?if(TopButtonNum!=2&&clicknum==2)?{??// ?????????????????m_QQqun.MoveWindow(0, rect0.bottom,??rect0.Width(), rect0.Height(), true);??// ??????????????m_QQothers.MoveWindow(0, rect1.bottom, ??rect0.Width(), rect0.Height(), true);??// ????????QQ?, ?????????m_List1.ShowWindow(SW_HIDE);??m_List2.ShowWindow(SW_HIDE);??treeCtrl.ShowWindow(SW_SHOW);??return;?}?//////////////////////////////////////////////////////////////////////////?//* ignoring these codes;?if(TopButtonNum!=3&&clicknum==3)?{??// ?????????m_QQfriend.MoveWindow(0, rect0.top, ??rect0.Width(), rect0.Height(), true);??m_QQqun.MoveWindow(0, rect0.bottom,??rect0.Width(), rect0.Height(), true);??m_QQothers.MoveWindow(0, rect0.bottom+rect0.Height(), ??rect0.Width(), rect0.Height(), true);??//////////////////////////////////////////////////////////////////////////??// ???????????m_List2.DeleteAllItems();??for(int i=1; i<18; i++)??{???int j=rand()%33;???m_List2.InsertItem(0xffff,"", -1);???m_List2.InsertItem(0xffff,"\n????"+i, j);??}??m_List2.InsertItem(0xffff,"", -1);??// ????????QQ??????, ?????????m_List1.ShowWindow(SW_HIDE);??treeCtrl.ShowWindow(SW_HIDE);??m_List2.ShowWindow(SW_SHOW);??return;?}?//*/?//////////////////////////////////////////////////////////////////////////
?????????????????QQ????????????????????????picture?????????????????????????????????????????????????????????????????????????
&nbsp;
?????????????????????? ??1.????????? ??2.?Ctrl+Enter????? ?????????????????????????????Create???????????, ??????????
void CMyQQDlg::OnDblclkMyFriend(NMHDR* pNMHDR, LRESULT* pResult) {?NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;?int m_nCurrentSel = pNMListView->iItem;?CString str;?str=m_List1.GetItemText(m_nCurrentSel, NULL);?CQQSendMessage *dlg=new CQQSendMessage;?dlg->msg=str;?dlg->Create(IDD_QQ_MESSAGE);?dlg->SetWindowText("????"+str+"????");?dlg->SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME), false);?dlg->ShowWindow(SW_SHOW);?*pResult = 0;}
???2?????????????
BOOL CQQSendMessage: reTranslateMessage(MSG* pMsg) {?// TODO: Add your specialized code here and/or call the base class?if(pMsg->message==WM_KEYDOWN)?{ ??if(pMsg->wParam==VK_RETURN && GetKeyState(VK_CONTROL)&0x80)??{ ???{????//????????? ????OnSend();????return 1; ???}??} ?} ?return CDialog::PreTranslateMessage(pMsg);}
???????Ctrl+Enter??????OnSend()??????????????????? ????????????QQ ???????????????????????????????????????????????????????! ????QQ????????????????????????????????????????????????
LPPOINT pt=new CPoint;GetCursorPos(pt);CRect rect;GetWindowRect(&rect);if(rect.PtInRect(*pt)){?if(rect.top<=2)?{??MoveWindow(rect.left, rect.top, ??dlgrect.Width(), dlgrect.Height(), true);?}}else{?if(rect.top<=2)?{??MoveWindow(rect.left, 0, rect.Width(), 3, true);?}}delete pt;
????????????????????????QQ??????????????????????????????????????????
|
|