如何在属性表单中添加标题

Mr. Laowang 2018-06-14 05:03:54

想在属性表单的上方(图中所标记的蓝色区域)添加标题,但不知怎么操作,新手菜鸟,望高手指点
...全文
1150 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2018-06-22
  • 打赏
  • 举报
回复
取 sheet 的 dc , dc.Drawtext 或 TextOut
Mr. Laowang 2018-06-22
  • 打赏
  • 举报
回复
那怎么在上面做caption啊,用的是什么函数呢?
schlafenhamster 2018-06-22
  • 打赏
  • 举报
回复
你的 page 是怎么创建的?
可以用 movewindow

CDialog::OnSysCommand(nID, lParam);
//
CRect sheetRect;
GetClientRect(sheetRect);
sheetRect.top+=40;
sheetRect.bottom-=40;
// child
m_msgSheet->MoveWindow(sheetRect);
//
if(IsWindow(m_page2->m_hWnd))
{
m_page2->MoveWindow(&sheetRect,TRUE);
}
if(IsWindow(m_page3->m_hWnd))
{
m_page3->MoveWindow(sheetRect);
}

改变 page 位置
sheetRect.top+=40;
sheetRect.bottom-=40;
Mr. Laowang 2018-06-22
  • 打赏
  • 举报
回复
我就有这个意思,但不大会啊,我现在把标题直接做在page里面了,大哥指点一下,你说的方法吧,怎么把page下移,然后在上面做个标题?
schlafenhamster 2018-06-22
  • 打赏
  • 举报
回复
IsWindow(m_page3->m_hWnd)
m_page3 是类对象,m_page3->m_hWnd 是 该 类对象的 窗口句柄 成员
IsWindow() 检查 窗口 是否 已 创建 。
Mr. Laowang 2018-06-22
  • 打赏
  • 举报
回复
m_page2 是添加的属性页变量?m_hwnd又是什么意思啊?不是很理解你的代码,麻烦大神讲讲啊,原谅新手的无知
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
其实可以 不要 标题栏, 在创建 page 时 ,忘下 移点 , 留出 上面 做 Caption,
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
那也没用啊 ,我在想想其他方法好了,thank you very much
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
不过 标题栏 的 高度是 不能改的!
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复

case WM_NCPAINT:
ret=DefWindowProc(hwnd,message,wParam,lParam);
hdc=GetWindowDC(hwnd);//without CS_CLASSDC!needs DCX_CACHE
SetBkMode(hdc,TRANSPARENT);
// Paint into this DC
if(hdc)
{
TextOut(hdc,400,10,TEXT("abcd"),4);
ReleaseDC(hwnd, hdc);
}
return ret;
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
大哥可否根据我的代码再稍微指点一下,万分感谢
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
“放大字体“ 要 自绘 ,在 WM_NCPAINT 消息里 。
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
那怎么放大字体呢
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
CProSheet pro("标题"); 不是 可以了吗 ?
但是在左上角, 写成 " 标题" 据中
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
或者我的意思就是在属性页外面,表单的上方自己创建一个文本框来做标题,但表单里添加文本框不会这个操作
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
我在另一个对话框里面添加了一个按钮然后创建sheet,标题是可以写的,但是在左上角,也不够大,可以居中并放大吗

void CMFCApplication3Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//创建表单类对象
CProSheet pro("标题");
//显示模态表单对话框
pro.DoModal();
}
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
那 构造 CProSheet 时 可以 直接 用 其中一个, 他们都有 Caption 的。
你看看 这个sheet 在哪里 构造的 ?
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
不是我写的啊,我在类视图里面添加了表单类后就自动生成了啊
schlafenhamster 2018-06-21
  • 打赏
  • 举报
回复
CProSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CProSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
是你写的 ?看看代码
Mr. Laowang 2018-06-21
  • 打赏
  • 举报
回复
Prosheet.h 里这样
class CProSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CProSheet)
CPage1 page_1; //创建两个个属性页对象;
CPage2 page_2;

public:
CProSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CProSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
virtual ~CProSheet();

protected:
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CStatusBar m_Statusbar; //状态栏类
};
加载更多回复(12)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧