VC
的一些小技巧
1
、刷新窗口
RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE );
2
、设置对话框背景颜色
在InitInstance函数(CChatAPP类中)中的
m_pMainWnd = &dlg;
下面加入SetDialogBkColor(RGB(240,128,128),RGB(0,0,0));
RGB(240,128,128)为背景颜色,RGB(0,0,0)为文本颜色
3
、设置对话框背景图片
void CChatDlg::OnPaint()中
//CDialog::OnPaint();
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
//IDB_BITMAP是你自己的图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
4
、设置Static Test为透明背景
HBRUSH CChatDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// 改变所有的STATIC为透明,当然也可以将CTLCOLOR_STATIC改为CTLCOLOR_EDIT
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)::GetStockObject(NULL_BRUSH);
}
// RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE );
//改变单个的控件为透明
/*
if(nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == IDC_STATIC54)
{ // IDC_XXX_STATIC 为你想要设为透明的控件ID
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}*/
// TODO: Return a different brush if the default is not desired
return hbr;
}
5
、字符串的一些操作
①截取:
CString name[50];
CString Mid;
name[0]=str.Mid(0,1);
②字符串转换为数字
int i;
i=atoi(name[0]);
③数字转换为字符串
char temp[10];
sprintf( temp, "%d" , i );
sprintf( temp, "%d" , i );
name[1]=temp;
6
、获取时间
CTime t=CTime::GetCurrentTime();
//
CString time=t.Format("%H:%M:%S");
CString time=t.Format("%Y-%m-%d %H:%M:%S");
7、基于对话框的程序添加最小化,最大化按钮
在资源编辑器中,打开对话框的属性,style页,border 选 Dialog Frame或resizing,style 选pop up,再把title bar ,system menu ,和minimize box 都选上就可以了。