1. 经常看到有网卡的计算机启动时,看到屏幕的左下方有一个“米形状”的字符在旋转,怎么实现的呢?
char sym1[4] = {'-', '\\', '|', '/'};//定义变量
//在定时器里显示上述各个下标值即可:
void CTestDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (nIDEvent == m_Timer)
{
k++;
if (k%4 == 0)
{
k = 0;
}
str = sym1[k];
SetDlgItemText(IDC_STATIC1, str);
}
CDialog::OnTimer(nIDEvent);
}
2. 在VC对话框程序里,如果在第一个界面上,假设摆放了几个按钮,但又需要此对话框铺满整张“图片”,上面的按钮就会被放置于其下而看不到,怎么让它们在运行起来,置于图片之上可见又可用呢?
a .最快的办法是:Ctrl+D设置控件显示Tab的顺序,让“图片”控件Tab值小于按钮控件即可实现(意义是先显示“图片”控件,后显示按钮控件)
b. 使用程序:(不推荐!)
//在定时器里面处理
void CTesterDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CRect rc;
int i = 0;
for (i = IDC_BUTTON1; i<=IDC_BUTTON5; i++)
{
GetDlgItem(i)->GetClientRect(&rc);
GetDlgItem(i)->InvalidateRect(&rc, FALSE);
}
CDialog::OnTimer(nIDEvent);
}
3. CXlistCtrl 扩展列表控件很好用,每个单元格可以轻松下拉选择内容,但有时觉得这种方式很麻烦,想点击某一个单元格时改变状态,就是要对每一个的位置进行定位:
//
// 处理OnClickList事件
// m_ListCtlTest 是CXlistCtrl的控件变量
//
void CTestDlg::OnClickListTest(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pNMIA = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
int i = -1, j = -1;
if (pNMIA)
{
i = pNMIA->iItem;
j = pNMIA->iSubItem;
}
if (i >= 0 && j >= 0)
{
//得到鼠标当前点
CPoint pt;
GetCursorPos(&pt);
//得到单元格的坐标
CRect rcSub; //单元格的RC
CRect rcTest; //整个列表控件的RC
m_ListCtlTest.GetSubItemRect(i, j, 0, rcSub);
m_ListCtlTest.GetWindowRect(&rcTest);
rcSub += rcTest;
//鼠标落在单元格内
if (rcSub.PtInRect(pt))
{
//在此处理......
}
}
*pResult = 0;
}
4. CListCtrl列表框中内容很多项时,让某一行处于 可见并 选中状态:
m_ListCtrl.SetItem(index, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED, LVIS_SELECTED, 0);//设置列表当前选择状态
m_ListCtrl.EnsureVisible(index, TRUE);//始终可见
5. 略去字符串中前面的一些空格字符:
//p指向处理的字符串
while (*p && isspace(*p))
p++;
要是使用MFC,直接使用CString::Replace(" ", "")即可!
6. CBitmapButton使用时,要将ID资源:
一般在对话框的初始化函数中:
m_bt.AutoLoad(IDC_BUTTON1, this);
m_bt.LoadBitmaps(IDB_BITMAP_UP, IDB_BITMAP_DN);//第一幅为正常显示的图片资源,第二幅为按下时的图片资源
m_bt.SizeToContent();
如果实现像CToolBarCtrl一样的功能,可以在单击事件中:
void CTestDlg::OnButton1()
{
m_bt.SetState(m_bState);
m_bState = !m_bState; //m_bState是BOOL成员变量,初始化时为TRUE,每次翻转
}