可以这样赋值
m_bline=true
然后通过类向导向view类添加OnLButtonDown()函数以响应鼠标按下消息,该消息中首先判断m_bline是否为true,若为true,可通过一个全局CPoint变量记录鼠标按下的位置
OnLButtonUp(UINT,
CPoint
point)
{
if(m_bline)m_oripoint=point
}
相同方法添加OnLButtonUp()函数响应鼠标释放消息
if(m_bline)
{
ClientDC
dc(this)//获取设备描述表句柄
dc.MoveTo(m_oripoint)//画笔移动到第一点
dc.LineTo(point)//划线至第二点
}
MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无标题”部分,可以重载文档类的该函数。窗口标题的后半部分可以通过SetWindowText设置,也可以编辑字符串资源中的IDR_MAINFRAME字符串,将第一个/n之前的字符串替换掉即可,而如果你想把“无标题”部分除掉,则必须修该窗口的风格。一、修改前半部分
1) 可以重载文档类的虚函数SetTitle
void CTestDoc::SetTitle(LPCTSTR lpszTitle){CDocument::SetTitle(L"你的标题")}也可以在 CTestDoc::OnNewDocument()中添加SetTitle(L"你的标题")
二、修改后半部分
1) 修改资源字符串:
将资源文件中的IDR_MAINFRAME修改为
修改此处/n/nChange/n/n/nChangeTitle.Document/nChange Document
资源字符串中各子串的含义可以参考:IDR_MAINFRAME字符串资源中各子串的含义
2) 使用框架窗口类的SetWindowText(L"你的标题"):
在应用程序类CTestApp::InitInstance()中调用如下语句
m_pMainWnd->SetWindowText(L"你的标题")
或者在其他地方用AfxGetMainWnd()->SetWindowText(L"你的标题")
3) 如果您想除掉标题中间的“-”,可以通过重CFramWnd类的OnUpdateFrameTitle函数,这个函数在VC提供的帮助文件中找不到,必须手工添加
virtual void OnUpdateFrameTitle(BOOL NaDa)
void CMainFrame::OnUpdateFrameTitle(BOOL NaDa){CString csAppName
csAppName.Format(AFX_IDS_APP_TITLE)
SetWindowText(csAppName)}此时显示的结果只有字符串资源AFX_IDS_APP_TITLE所定义的字符串
4) 是在CMainFrame的PreCreateWindow函数中修改窗口风格:
return CFrameWnd::PreCreateWindow(cs)}使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个/n之前的部分
void CBezierDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this) // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0)
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON)
int cyIcon = GetSystemMetrics(SM_CYICON)
CRect rect
GetClientRect(&rect)
int x = (rect.Width() - cxIcon + 1) / 2
int y = (rect.Height() - cyIcon + 1) / 2
// 绘制图标
dc.DrawIcon(x, y, m_hIcon)
}
else
{
CDialogEx::OnPaint()
}
//放在这里
CDC *pDC
pDC = m_picShow.GetDC()
CPen Pen(PS_SOLID,2,RGB(0,255,0))
CPen *oldPen = pDC->SelectObject(&Pen)
pDC->MoveTo(500,100)
pDC->LineTo(600,100)
pDC->SelectObject(oldPen)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)