Impossible is nothing  
  爱过知情重醉过知酒浓   花开花谢终是空   缘份不停留像春风来又走   女人如花花似梦
公告
日历
<2022年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
统计
  • 随笔 - 8
  • 文章 - 91
  • 评论 - 16
  • 引用 - 0

导航

常用链接

留言簿(4)

随笔分类(4)

随笔档案(8)

文章分类(77)

文章档案(91)

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

MFC代码收集
2006-03-30 14:24
让列表CListCtrl第一列居中显示
LVCOLUMN   lvc;
lvc.mask   =   LVCF_FMT;
m_list2.GetColumn(0, &lvc);
lvc.fmt   &=   ~LVCFMT_JUSTIFYMASK;
lvc.fmt   |=   LVCFMT_CENTER;
m_listLayer.SetColumn(0, &lvc);


2006-03-31 15:49
得到文件大小
struct _stat ST;
_stat(strFileName, &ST);
int nFileSize = ST.st_size;


//列表整行选择和GridLine风格
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP/*|LVS_EX_CHECKBOXES*/);
当鼠标提留在某项上指定时间时把该项设为选中状态。需要列表有LVS_EX_TRACKSELECT风格
m_ListCtrl.SetExtendedStyle(LVS_EX_TRACKSELECT|LVS_EX_FLATSB|LVS_EX_UNDERLINEHOT);


2006-06-04 16:45

#include <io.h>
判断一个文件是否存在
if( _access( lpszFileName, 00 ) == -1 )
/*
00 Existence only 存在
02  Write permission 可写
04 Read permission 可读
06 Read and write permission 可读写
*/

选择目录
 BROWSEINFO bi;
 char dispname[MAX_PATH],path[MAX_PATH];
 ITEMIDLIST *pidl;

 bi.hwndOwner = NULL;
 bi.pidlRoot=0;
 bi.pszDisplayName=dispname;
 bi.lpszTitle="请选择备份目录:";
 bi.ulFlags=BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_DONTGOBELOWDOMAIN ;
 bi.lpfn=0;
 bi.lParam=0;
 bi.iImage=0;
 if(pidl=SHBrowseForFolder(&bi))
 {
  SHGetPathFromIDList(pidl,path);
  m_strBackPath = CString(path);

 }


2006-07-06 17:41
//获取CTabCtrl的标签文字
TCHAR szBuf[256];
TCITEM item;
item.mask= TCIF_TEXT;
item.pszText= szBuf;
item.cchTextMax= sizeof(szBuf)/sizeof(TCHAR);

m_tbCtr.GetItem(m_tbCtr.GetCurSel(), &item);
SetDlgItemText(IDC_EDIT2, szBuf);

给系统菜单添加关于选项
 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 } 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=885908

[点击此处收藏本文]   wuhran发表于 2006年07月06日 18:09:00

 
wuhran 发表于2006-07-06 18:12:00  IP: 222.141.18.*
如何让工具条具有按下状态
CToolBar m_wndFuncBar;
int m_curTool;

m_wndFuncBar.GetToolBarCtrl().CheckButton(m_curTool,FALSE);
CToolBarCtrl::CheckButton(int nID, BOOL bCheck = TRUE);

 
wuhran 发表于2006-07-06 18:12:00  IP: 222.141.18.*
把CPropertySheet的标签放到下方时出现的错误
CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}
这个是我的实现代码:

CRect rect;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
DWORD dwStyleEx = WS_EX_CONTROLPARENT;

m_sheet.AddPage(&m_dlgFileBack);
m_sheet.AddPage(&m_dlgFileDel);
m_sheet.Create(this, dwStyle, dwStyleEx);

CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}

这样运行的时候就会出现下面的样子,就是标签只能看到小小的一条,其他的都看不到。

这个问题花了我很长时间,最后在准备发帖子询问的时候才突然想到原因
希望对遇到同样问题的朋友有点帮助

原来,创建CPropertySheet的时候,自动创建了一个CTabCtrl,我们可以用CPropertyShhet::GetTabControl()得到该TabCtrl的指针
如果要放到下面就要改变这个TabCtrl的大小,否则就会遮住属性页标签

完整的代码如下:
CRect rect;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
DWORD dwStyleEx = WS_EX_CONTROLPARENT;

m_sheet.AddPage(&m_dlgFileBack);
m_sheet.AddPage(&m_dlgFileDel);
m_sheet.Create(this, dwStyle, dwStyleEx);

CTabCtrl* pTabCtrl = m_sheet.GetTabControl();
if(pTabCtrl)
{
pTabCtrl->ModifyStyle(0, TCS_BOTTOM);
}

// 调整属性表到静态框大小
CWnd* pWnd = (CWnd*)GetDlgItem(IDC_STATIC_SHEET);
if(pWnd)
{
CRect rect;
pWnd->GetWindowRect(rect);
ScreenToClient(rect);
m_sheet.MoveWindow(rect);

//
// 调整TabCtrl大小
//
// rect.top += 5;
// rect.left += 5;
rect.bottom -= 5;
rect.right -= 10;
if(pTabCtrl)
{
pTabCtrl->MoveWindow(rect);
}

//
// 调整当前活动页大小
//
rect.top += 5;
rect.left += 5;
rect.bottom -= 20;
rect.right -= 20;

CPropertyPage* page = m_sheet.GetActivePage();
if(page)
{
page->MoveWindow(rect);
}

pWnd->ShowWindow(SW_HIDE);
}
posted on 2006-07-06 19:36 笑笑生 阅读(1076) 评论(0)  编辑 收藏 引用 所属分类: Windows/MFC

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © 笑笑生 Powered by: 博客园 模板提供:沪江博客