改变控件颜色

 改变控件颜色&改变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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值