MFC開發之製作乙個登陸後的頁面

2021-08-14 10:42:26 字數 3128 閱讀 1551

效果: 

乙個簡單的好友介面就顯示出來了。簡單介紹一下,為了簡單美化介面,將對話方塊的邊框去掉了。所以在客戶區要實現以下功能:單擊滑鼠可以移動視窗,新增最小,退出鍵,當滑鼠焦點在某個控制項的時候顯示提示資訊,在下半段新增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...