MFC控制元件一些不常見的用法
一、分隔線
用Picture控制元件,拖動使其高度(或寬度)變為1,屬性裡Type設定為Frame,Color設定為Etched即可。
用GroupBox和分隔符組合使用可以做出相對美觀的介面,當然也可以使用多個GroupBox使其邊緣重疊,看上去就你分隔線的效果。
二、CTreeCtrl的用法
http://blog.csdn.net/shuilan0066/article/details/6638504
三、利用CImage在控制元件上動態顯示圖片
#include <atlimage.h>
RECT rect;
GetDlgItem(IDC_STC_VERIFYCODE)->GetClientRect(&rect);//獲得顯示控制元件的RECT
CDC* pDC =GetDlgItem(IDC_STC_VERIFYCODE)->GetDC();//獲得顯示控制元件的DC
CImage image; //使用圖片類
image.Load( L"verifycode.png"); //裝載路徑下圖片資訊到圖片類
image.Draw( pDC->m_hDC,rect); //圖片類的圖片繪製Draw函式
ReleaseDC( pDC );
四、CListCtrl的用法
DWORD dwStyle = m_list_ctrl.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//選中某行使整行高亮(只適用與report風格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//網格線(只適用與report風格的listctrl)
dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控制元件
m_list_ctrl.SetExtendedStyle(dwStyle); //設定擴充套件風格
m_list_ctrl.InsertColumn( 0, "程式ID", LVCFMT_LEFT, 140 );//插入列
m_list_ctrl.InsertColumn( 1, "程式名", LVCFMT_LEFT, 140 );//插入列
m_list_ctrl.InsertColumn( 2, "執行緒數", LVCFMT_LEFT, 140 );//插入列
//插入一行資料
int nRow=m_list_ctrl.InsertItem(0,"1056");//插入行
m_list_ctrl.SetItemText(nRow, 1, "QQ.exe");//設定第一列資料
m_list_ctrl.SetItemText(nRow, 2, "58");//設定第二列資料
五、MFC中避免視窗重繪導致視窗閃爍的方法
思路:先建立一個視窗相容的記憶體DC,使用記憶體DC畫圖,然後將記憶體DC複製到視窗DC中
//在指定的視窗CWnd * pWnd中畫圖
void CRecoDemoDlg::WndPaint(CWnd * pWnd)
{
//1、獲取視窗dc及視窗RECT
CDC* pWndDC=pWnd->GetDC();//獲得指定視窗的dc
RECT rect;
pWnd->GetClientRect(&rect);//獲得指定視窗的Rect
//2、建立相容記憶體dc
CDC MemDC;
MemDC.CreateCompatibleDC(pWndDC);//建立相容視窗dc的記憶體dc
//3、建立相容點陣圖,讓記憶體dc輸出到點陣圖
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(pWndDC,rect.right-rect.left,rect.bottom-rect.top);//建立相容點陣圖
MemDC.SelectObject(MemBitmap);//讓記憶體dc輸出到點陣圖
//4、使用記憶體dc畫圖,這裡是顯示一張圖片
CImage image; //使用圖片類
image.Load( m_ImgFileName); //裝載路徑下圖片資訊到圖片類
image.Draw( MemDC.m_hDC,rect); //圖片類的圖片繪製函式Draw
//5、將記憶體dc複製到視窗dc
pWndDC->BitBlt(0,0,rect.right-rect.left,rect.bottom-rect.top,&MemDC,0,0,SRCCOPY);
//6、釋放dc
ReleaseDC( &MemDC );
ReleaseDC(pWndDC);
}
六、從右下角升起的彈窗
// 在OnInitDialog()中新增
// 示例
// 獲得桌面大小
CRect rectWorkArea;
SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,SPIF_SENDCHANGE);
// 獲得對話方塊大小
CRect rectDlg;
GetWindowRect(&rectDlg);
int nW = rectDlg.Width();
int nH = rectDlg.Height();
// 將視窗設定到右下角
::SetWindowPos(GetSafeHwnd(),HWND_BOTTOM,rectWorkArea.right-nW-20,rectWorkArea.bottom-nH,nW,nH,SWP_NOZORDER);
// 動畫顯示彈窗效果
AnimateWindow(GetSafeHwnd(),800,AW_SLIDE|AW_VER_NEGATIVE);
相關文章
- ViewStub的一些不常見的用法View
- MFC控制元件之Button基本用法控制元件
- 日常爬蟲工作中一些常見的和不常見的偽裝技巧爬蟲
- axios的一些常見用法iOS
- 一些不常用的工具整理
- ORACLE一些不常用的指令碼Oracle指令碼
- MFC中上下控制元件的使用控制元件
- VC++ MFC UpdateData()用法C++
- MFC控制元件使用大全控制元件
- MFC控制元件精簡控制元件
- SQL指令碼注入的不常見方法概括SQL指令碼
- Android Studio中的一些常見控制元件Android控制元件
- MFC中ListControl控制元件的使用控制元件
- MFC操作父視窗的子控制元件控制元件
- 一些不常用的卻很有用的T-code
- golang中一種不常見的switch語句寫法Golang
- [譯] 可用但最不常見的 HTML5 標籤HTML
- MFC NumericUpDown Spin控制元件 CSpinButtonCtrl控制元件
- DropDownList控制元件的基本用法控制元件
- table控制元件的基本用法控制元件
- MFC不能多執行緒操作控制元件的原因執行緒控制元件
- 幾種不常見的DNS解析記錄型別介紹DNS型別
- conda pip pip3 安裝包的一些常見用法
- 整理一些 JDK 中 Integer 實用但不常用的方法JDK
- MySql的一些用法MySql
- mfc ocx 控制元件開發需要注意的問題控制元件
- MFC動態建立控制元件的訊息處理 (轉)控制元件
- 解決oracle 11g+xp的一個不常見的錯誤Oracle
- 五款不常見但好用的win10軟體推薦Win10
- MFC功能擴充套件控制元件BCGSuite for MFC釋出v27.1|附下載套件控制元件UI
- MFC開發常見問題的回答2 (轉)
- MFC開發常見問題的回答3 (轉)
- nslookup命令的常見用法
- 常見Oracle HINT的用法Oracle
- 前端開發技巧-那些不常見但十分有效的小玩意前端
- 幾個常見函式的非常見用法函式
- MFC---ActiveX控制元件程式設計基礎控制元件程式設計
- 初學MFC(3)——樹型控制元件之一 (轉)控制元件