效果:
乙個簡單的好友介面就顯示出來了。簡單介紹一下,為了簡單美化介面,將對話方塊的邊框去掉了。所以在客戶區要實現以下功能:單擊滑鼠可以移動視窗,新增最小,退出鍵,當滑鼠焦點在某個控制項的時候顯示提示資訊,在下半段新增tree control控制項,顯示好友資訊,當滑鼠雙擊時,顯示聊天介面:
該介面只是簡單的實現了,,有時間進行美化,下面來說說具體的實現步驟:
1.實現最小化,退出功能
為了使介面美觀,在客戶區的右上角新增了2個靜態文字充當按鈕,將空間的notify屬性設定為true,接受訊息。將其的文字設定為'x'充當退出按鈕,最小化類似。
在onliitdialog()函式中新增如下**:
enabletooltips(true);
m_ttc.create(this);
m_ttc.activate(true);
cwnd* pw = getdlgitem(idc_static3);
m_ttc.addtool(pw, _t('退出'));
pw = getdlgitem(idc_static4);
m_ttc.addtool(pw, _t('最小化'));
實現pretranslatemessage虛函式,新增如下**:
m_ttc.relayevent(pmsg);//m_ttc為在標頭檔案宣告的ctooltipctrl m_ttc;
這樣當滑鼠的焦點移動到該靜態文字時,就會提示這是 退出 按鈕
雙擊靜態文字控制項,進入響應單擊函式,加入如下**:
void dlgchat::onstnclickedstatic3()
其中的onclose函式
void dlgchat::onclose()
最小化類似 最小化的函式:
2.實現暱稱
響應wm_paint訊息 在onpaint函式新增如下**:
getparent()->showwindow(sw_hide); //隱藏父對話方塊
cstatic*pstatic = (cstatic *)getdlgitem(idc_static6);
cstring str;
cfont*font, newfont;
//messagebox(l'hello');
font = pstatic->getfont();//獲取cfont物件
logfont lf;
font->getlogfont(&lf);//獲取logfont結構體
setcursor(loadcursor(null, idc_hand));
newfont.createfont(-30, // nheight
-15, // nwidth
0, // nescapement
0, // n
orientation
fw_normal, // nweight
false, // 斜體
false, // 下劃線
0, // cstrikeout
ansi_charset, // ncharset
out_default_precis, // noutprecision
clip_default_precis, // nclipprecision
default_quality, // nquality
default_pitch | ff_swiss, // npitchandfamily
_t('楷體')); //設定暱稱的字型
pstatic->setfont(&newfont);
pstatic->getwindowtext(str);
pstatic->setwindowtext(str);//將暱稱顯示到對話方塊
setdlgitemtext(idc_edit1, l'編輯你的個性簽名!');
說明一下,,這裡放在onpaint函式不放在oninitdialog函式是因為每次如果最小化,然後再恢復視窗,如果放在oninitdialog函式裡面,則暱稱就無法顯示,只顯示一次
3.tree control控制項的設定
在工具箱新增tree control控制項到對話方塊 在oninitdialog函式裡面新增如下**:
hicon h
icon[4]; // 圖示控制代碼陣列
m_imagelist.create(32, 32, ilc_color32, 4, 4);
for (int i = 0; i<4; i++)
m_webtree.setimagelist(&m_imagelist, tvsil_normal);
htreeitem hroot = m_webtree.insertitem(l'我的好友', 0, 0, tvi_root);//新增一級結點
m_webtree.setitemdata(hroot, 1);//設定節點的編號
htreeitem h1 = m_webtree.insertitem(l'移動開發', 2, 2, hroot);//新增二級結點
m_webtree.setitemdata(h1, 2);//設定節點的圖示
htreeitem h2 = m_webtree.insertitem(l'web前端', 1, 1, hroot);//新增二級結點
m_webtree.setitemdata(h2, 3);
htreeitem h3 = m_webtree.insertitem(l'資料庫', 3, 3, hroot);//新增二級結點
m_webtree.setitemdata(h3, 4);
//第2個引數是item在新增好後的圖示
//第3個引數為ite
m在被選中後的圖示
在該對話方塊的資源檢視,選中tree control控制項 檢視它的屬性--->控制項事件 新增 nm_dblilk事件 在其中新增響應雙擊事件處理函式
void dlgchat::onnmdblclktree2(nmhdr *pnmhdr, lresult *presult)
*presult = 0;}}
到此為止,乙個簡單的登入介面就完成了
Django實現乙個登陸首頁
django admin startproject yourproject django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.mess...
乙個簡單的struts登陸
剛開始學struts,以下是乙個是實現小的登入應用。第二,在myeclipse中建立乙個web專案 第三,建立乙個login.jsp登入介面 如下 第三,建立乙個顯示登入資訊的result.jsp頁面 如下 第四,就是要寫乙個loginaction類,放在包com.test.action裡,如下 第...
乙個Flex做的登陸控制項
最近在學習flex,之前一直在忙,沒空整理一下,現在有空整理整理一下,之前用flex做了個簡單的登陸控制項。希望大家多點給點意見 frmlogin.mxml 1 23 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 event name logi...