改变控件颜色&改变CStatic字体&改变CButton字体2011-02-11 21:35转载自 zhangyafei3020最终编辑 zhangyafei30201. 改变控件颜色
CClientDC dc(this);
RECT m_pRect;
GetDlgItem(IDC_SAMPLE)->GetWindowRect(&m_pRect);
ScreenToClient(&m_pRect);
CBrush NewBrush(RGB(0,0,255));
dc.FillRect(&m_pRect,&NewBrush);
2.改变CStatic字体
CClientDC hdc(this);
CFont a;
a.CreatePointFont(500, "楷体_GB2312",NULL);
CStatic *m_pbtWnd=&m_button;
m_pbtWnd->SetFont(&a);
3.改变CButton字体
CFont *f;
f=new CFont;
f->CreateFont(30,0,0,0,
FW_BOLD,
TRUE,
TRUE,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
_T("Arial"));
GetDlgItem(IDC_BUTTON1)->SetFont(f);
4.窗口始终在最前面:
方法一:在对话框的属性中,在more style中有一项是System model,选上它,即可!
方法二:OnInitDialog里加入SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
5.限制CEdit只能输入小写字母
方法一:属性里设置下,LowerCase(输入大写后自动变小写)
方法二:新建个继承自CEdit的类。。然后重载OnChar函数.... (只能输入小写,输入其他不反应)
void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if (nChar < 'a' || nChar > 'z')
return;
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
6.MFC弹出非模态对话框
CTestDialog *pTestDlg = new CTestDialog();
pTestDlg->Create(IDD_DIALOG_TEST, this);
pTestDlg->ShowWindow(SW_SHOW);
///下面三行错误
//CTestDialog dlg1;
//dlg1.Create(IDD_DIALOG_TEST, NULL);
//dlg1.ShowWindow(SW_SHOW);
为什么前三行不能用后三行代替?
用后三行,弹出的对话框闪了一下就消失了
用前三行能正确弹出对话框
、、、、、、、、、、、、、、、、、、、、、、、、、、
注意一下他们的生命周期
前三行中对话框的生命周期是什么?
后三行中对话框的生命周期又是什么?
、、、、、、、、、、、、、、、、、、、、、、、、、、
上面三行中对象是NEW出来的,在堆上分配的空间,直到释放,它的生命周期才结束,而下面三行代码的生命周期到你调用方法后就结束了,所以一闪就没了~!
7.如何去掉框架的关闭按钮?
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.style &= ~WS_SYSMENU;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
8.CStatic 显示图片:
CPaintDC dc(this);
HBITMAP bmp;
bmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"E://a.bmp",
IMAGE_BITMAP,0,0,
LR_CREATEDIBSECTION
| LR_DEFAULTSIZE
| LR_LOADFROMFILE
| LR_DEFAULTCOLOR);
((CStatic *)GetDlgItem(IDC_STATIC1))->ModifyStyle(NULL,SS_BITMAP|SS_CENTERIMAGE,0);
((CStatic *)GetDlgItem(IDC_STATIC1))->SetBitmap(bmp) ;
9. CListCtrl
DWORD dwStyle = m_list.GetExtendedStyle(); //获取当前扩展样式
dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(report风格时)
dwStyle |= LVS_EX_GRIDLINES; //网格线(report风格时)
dwStyle |= LVS_EX_CHECKBOXES; //item前生成checkbox控件
m_list.SetExtendedStyle(dwStyle); //设置扩展风格
m_list.InsertColumn(0,"名称",LVCFMT_LEFT,50); //插入列
m_list.InsertColumn(1,"备注",LVCFMT_LEFT,50);
10
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HWND w=FindWindow(NULL,"笔记.txt - 记事本");
char s1[256];
char s2=GetWindowText(w,s1,256);
cout<<s1;
return 0;
}
http://hi.baidu.com/skykingwcg/blog/item/e4e426850063dacbbc3e1eb8.html