在单文档的客户去画线条格子,自定义菜单栏中设置参数设置行和列的参数
比如:原来我设置了10行10列,现在变成12行12列,显示没有问题,但在设置回10行10列就没反应了,我估计是窗口没有刷新造成的,改如何改正,
下面是view类void CBanyungongView::OnDraw(CDC* pDC)
{
CBanyungongDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if( pDC == NULL )
return;
int nCol = m_nWidth/CELL_WIDTH;
int nRow = m_nHeight/CELL_HEIGHT;
CPen pen(PS_SOLID,1,RGB(128,128,128));
CPen* pOld = pDC->SelectObject(&pen);
for( int i=1; i<nRow; i++ )
{
pDC->MoveTo(0,i*CELL_HEIGHT);
pDC->LineTo(m_nWidth,i*CELL_HEIGHT);
}
for( int j=1; j<nCol; j++ )
{
pDC->MoveTo(j*CELL_WIDTH,0);
pDC->LineTo(j*CELL_WIDTH,m_nHeight);
}
pDC->SelectObject(pOld);
pen.DeleteObject();
}
比如:原来我设置了10行10列,现在变成12行12列,显示没有问题,但在设置回10行10列就没反应了,我估计是窗口没有刷新造成的,改如何改正,
下面是view类void CBanyungongView::OnDraw(CDC* pDC)
{
CBanyungongDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if( pDC == NULL )
return;
int nCol = m_nWidth/CELL_WIDTH;
int nRow = m_nHeight/CELL_HEIGHT;
CPen pen(PS_SOLID,1,RGB(128,128,128));
CPen* pOld = pDC->SelectObject(&pen);
for( int i=1; i<nRow; i++ )
{
pDC->MoveTo(0,i*CELL_HEIGHT);
pDC->LineTo(m_nWidth,i*CELL_HEIGHT);
}
for( int j=1; j<nCol; j++ )
{
pDC->MoveTo(j*CELL_WIDTH,0);
pDC->LineTo(j*CELL_WIDTH,m_nHeight);
}
pDC->SelectObject(pOld);
pen.DeleteObject();
}
解决方案 »
- 请教各位大侠:如何使卸载的快捷方式不出现在最常用的文件列表中?,但开始菜单中要有卸载的快捷方式。
- 关于自定义接口、调度接口、双重接口的理解
- 如何处理list control控件问题
- 请问如何实现下面的要求:删除表A中某一行,则自动删除表B中,代表A的子项的记录?
- 请问如何对ClistCtrl控件的column拖动进行处理
- 为什么在com方法的中调用文档指针,文档里的值都下后窜一个呀?
- 请教:公司要建个这样的系统,比如说一个文件要10个部门领导审批,一个审批后自动到另一个人那里。。
- 如何制作对话框编辑器?
- 傻了,大虾们来看看啊!
- 请教 怎样 在基类CObject 中产生新类
- 连接mysql 为什么执行查询 结果集却老没有呢
- [求助]如何把AVI(只有视频)文件和和WAV(只有音频)文件合并?
RedrawWindow
之类的函数把原来的图像刷新掉
BOOL bErase = TRUE
);bEraseSpecifies whether the background within the update region is to be erased.
(指定更新区域是否被擦除)
还是单文档中建立个对话框并显示出来,点击执行后对话框显示在客户区的规定坐标上,当我关闭整个窗口,再次点击执行后,对话框坐标没有变,但客户区的位置变了,我想实现对话框和客户区显示同步如何改写下面代码void CBanyungongView::OnShowWindow(BOOL bShow, UINT nStatus)
{
CView::OnShowWindow(bShow, nStatus);
if( bShow )
{
HINSTANCE hinst = AfxGetInstanceHandle();
CBanyungongDoc* pDoc = GetDocument();
}
if( m_pDlgTool == NULL )
{
m_pDlgTool = new CToolBarDlg;
m_pDlgTool->Create(IDD_DIALOG_TOOL,this);
}
if( m_pDlgTool != NULL )
{
m_pDlgTool->ShowWindow(bShow);
//m_pDlgTool->SetWindowPos(&wndNoTopMost,rc.right-100,rc.top+20,0,0,SWP_NOSIZE |SWP_SHOWWINDOW);
CRect rc(530,160,530+44,160+255);
m_pDlgTool->MoveWindow(rc);
}
}
RedrawWindow
之类的函数把原来的图像刷新掉