VC菜鸟之路03_利用MFC绘制动态矩阵图——02
来源:互联网 发布:期货套利交易软件 编辑:程序博客网 时间:2024/06/06 08:14
火大!!这破服务器,老子连续几次提交都失败了!!垃圾!!垃圾!!!
接上回。。
接下来在蓝色矩形框内动态写入输入输出标识。代码如下:
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j-1],rc,DT_CENTER|DT_SINGLELINE|DT_VCENTER);//Str_In[]为预先定义的字符串数组
brush.DeleteObject();//注销画刷
做完上面这部基本上整个图形背景就算完成了,界限来就是对鼠标的响应了。首先根据鼠标的位置对鼠标对应的输入输出信号标识做出改变。流程大概就是先获取鼠标在客户区的位置,然后判断与之对应的矩形框,确定后再变所对应矩形框中的背景色。代码如下:
void CMy123View::OnMouseMove(UINT nFlags, CPoint point)
{
CBrush brush1(RGB(0,51,205));
CBrush brush(RGB(143,188,223));
CDC* pDC = GetDC();
for( i=1;i<=N_OutPut;i++){
/**********************定义横向区域*********************/
CRect rect(XLeft,
YTop+((YBotton-YTop)/N_Max)*(i+1)-(YBotton-YTop)/(2*N_Max),
XRight,
YTop+((YBotton-YTop)/N_Max)*(i+1)+(YBotton-YTop)/(2*N_Max)
);
/**********************鼠标矩形区域*********************/
CRect rc(XRight-(XRight-XLeft)/N_Max,
YTop+((YBotton-YTop)/N_Max)*(i+1)-(YBotton-YTop)/(2*N_Max)+1,
XRight,
YTop+((YBotton-YTop)/N_Max)*(i+1)+(YBotton-YTop)/(2*N_Max)-1);
/**********************鼠标上下相邻矩形区域*************/
CRect rc1(XRight-(XRight-XLeft)/N_Max,
YTop+((YBotton-YTop)/N_Max)*(i)-(YBotton-YTop)/(2*N_Max)+1,
XRight,
YTop+((YBotton-YTop)/N_Max)*(i)+(YBotton-YTop)/(2*N_Max)-1);
CRect rc2(XRight-(XRight-XLeft)/N_Max,
YTop+((YBotton-YTop)/N_Max)*(i+2)-(YBotton-YTop)/(2*N_Max)+1,
XRight,
YTop+((YBotton-YTop)/N_Max)*(i+2)+(YBotton-YTop)/(2*N_Max)-1);
/*******************判断鼠标所处区域*****************/
if ( rect.PtInRect( point ) ) {
pDC->FillRect(rc,&brush1);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_Out[i-1],rc,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
/*****************重绘鼠标相邻区域********************/
if(2<=i&&i<=N_OutPut-1){
pDC->FillRect(rc1,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_Out[i-2],rc1,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
pDC->FillRect(rc2,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_Out[i],rc2,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
else if(i==1){
pDC->FillRect(rc2,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_Out[i],rc2,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
else{
pDC->FillRect(rc1,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_Out[i-2],rc1,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
}
}
for( j=1;j<=N_InPut;j++){
/**********************定义横向区域*********************/
CRect rect(XLeft+((XRight-XLeft)/N_Max*j)-(XRight-XLeft)/(2*(N_Max))+1,
YTop,
XLeft+((XRight-XLeft)/N_Max*j)+(XRight-XLeft)/(2*(N_Max))-1,
YBotton);
/**********************鼠标矩形区域*********************/
CRect rc(XLeft+((XRight-XLeft)/N_Max*j)-(XRight-XLeft)/(2*(N_Max))+1,
YTop,
XLeft+((XRight-XLeft)/N_Max*j)+(XRight-XLeft)/(2*(N_Max))-1,
YTop+(YBotton-YTop)/N_Max);
/**********************鼠标上下相邻矩形区域*************/
CRect rc1(XLeft+((XRight-XLeft)/N_Max*(j-1))-(XRight-XLeft)/(2*(N_Max))+1,
YTop,
XLeft+((XRight-XLeft)/N_Max*(j-1))+(XRight-XLeft)/(2*(N_Max))-1,
YTop+(YBotton-YTop)/N_Max);
CRect rc2(XLeft+((XRight-XLeft)/N_Max*(j+1))-(XRight-XLeft)/(2*(N_Max))+1,
YTop,
XLeft+((XRight-XLeft)/N_Max*(j+1))+(XRight-XLeft)/(2*(N_Max))-1,
YTop+(YBotton-YTop)/N_Max);
/*******************判断鼠标所处区域*****************/
if ( rect.PtInRect( point ) ) {
pDC->FillRect(rc,&brush1);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j-1],rc,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
/*****************重绘鼠标相邻区域********************/
if(2<=j&&j<=N_OutPut-1){
pDC->FillRect(rc1,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j-2],rc1,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
pDC->FillRect(rc2,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j],rc2,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
else if(j==1){
pDC->FillRect(rc2,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j],rc2,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
else{
pDC->FillRect(rc1,&brush);
pDC->SetBkMode(TRANSPARENT);//设置背景色为透明
pDC->DrawText(Str_In[j-2],rc1,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
}
}
}
ReleaseDC(pDC);
brush1.DeleteObject();
brush.DeleteObject();
}
- VC菜鸟之路03_利用MFC绘制动态矩阵图——02
- VC菜鸟之路03_利用MFC绘制动态矩阵图——03
- VC菜鸟之路03_利用MFC绘制动态矩阵图
- 利用MFC绘制动态矩阵图
- MFC/VC++ 绘制正弦曲线
- VC++动态链接库(DLL)编程深入浅出之二(1)——非MFC dll
- 利用MATLAB 绘制矩阵色块图
- 菜鸟之路_触摸常量池
- 利用VC绘制对数坐标系
- 利用VC绘制对数坐标系
- MFC中绘制动态曲线
- MFC中绘制动态曲线
- MFC中绘制动态曲线
- MFC之绘制线条
- vc动态曲线绘制方法
- vc动态曲线绘制方法
- vc动态曲线绘制方法
- vc动态曲线绘制方法
- 2009.12.18--文思创新手机测试面试
- 关于更换事件
- 【转】有效减少WinForm程序的内存占用 C#
- 在WEB中,Quartz使用配置文件调用
- nginx学习
- VC菜鸟之路03_利用MFC绘制动态矩阵图——02
- 寂寞无聊
- C#中的Linq技术标准操作符大全
- Unix 实现非交互式的ftp命令。
- PureMVC入门例子
- 一些常用的 t code
- 如何判断javascript中参数类型,对象类型。
- GUID/UUID
- 4.3.4 配置无线以太网连接