一 、在一个按键中触发另一个按键:
void CMainPage_1_1::OnBnClickedButton2()
{
//TODO:
OnBnClickedButton1();
}
二、列表拖动文件,显示文件内容
1 先设置住对话框的属性:Accept File 修改为 True。
2 右键类向导(class wizard),选择消息,找到WM_DROPFILES,双击将其移至右边,编辑代码。
void CDemoDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 获取列表框指针
CListBox *pListbox = (CListBox *)GetDlgItem(IDC_LIST1);
pListbox->ResetContent();// 清空列表框内容
/*************多文件**********************/
// 取得被拖动文件的数目 第三个参数设置为NULL时,返回文件个数。
int nCount=DragQueryFile(hDropInfo,-1,NULL,0);
// 遍历打印到列表框中
for(int i=0; i< nCount; i++)
{
// 获得拖曳的第i个文件的文件名
WCHAR szFilePath[MAX_PATH];
DragQueryFile(hDropInfo,i,szFilePath,MAX_PATH);
/***********************单文件********************/
DragQueryFile(hDropInfo,0,szFilePath,MAX_PATH);
//获取文件名后对应的操作,复制文件内容等
OnOpenFile();
CDialogEx::OnDropFiles(hDropInfo);
}
三、设置编辑文本大小等
在基类加入
CFont* m_editFont;
CFont* ptf = m_edit.GetFont();
LOGFONT lf;
ptf->GetLogFont(&lf);
lf.lfHeight = 25;
m_editFont.CreateFontIndirectW(&lf);
m_edit.SetFont(&m_editFont);
四 获取列表的行列
//获取单击所在的行号
1. //找出鼠标位置
2. DWORD dwPos = GetMessagePos();
3. CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
4. m_listCtrl.ScreenToClient(&point);
5.
6. //定义结构体
7. LVHITTESTINFO lvinfo;
8. lvinfo.pt = point;
9. lvinfo.flag = LVHT_ABOVE;
10.
11. //获取行号信息
12. int nItem = m_listCtrl.HitTest(&lvinfo);
13. //int nItem = m_listCtrl.SubItemHitTest(&lvinfo);
14. if(nItem != -1)
15. m_itemSel = lvinfo.iItem; //当前行号
5 列表响应CTRL+C
1 列表添加事件处理程序,选择LVN_KEYDOWN
附加一遍关于键盘响应的文章:
http://blog.csdn.net/mjk1133/article/details/6704694
void CListView::OnLvnKeydownReportList(NMHDR *pNMHDR, LRESULT *pResult)
{
if( ::GetKeyState( VK_CONTROL )& 0x8000) && ( pLVKeyDow->wKey == 'C' || pLVKeyDow->wKey == 'c')
{
//TO DO
}
*pResult = 0;
}