100弱问一下

GR 2003-12-07 08:32:13
wndproc()
{
case:循环

case://这里能不能中断上面的循环

}

我的意思就是比如第一个case里是一个无限的循环。第二个case能不能象中断嵌套那样。把第一断掉。执行完第二个case之后再跳回。

另外再问一下。把一个象素点变色用什么函数。比如把A(2,2)变成黑色或者其他颜色.

...全文
51 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
enoloo 2003-12-07
  • 打赏
  • 举报
回复
第一个问题:
自定义一个消息,在case 2:
PostMessage(hWnd,MY_MSG,MAX,0);
case MY_MSG:
//循环,当记数>=MAX退出循环 ,
//可以用return 退出,也可以break退出。
第二个问题:
COLORREF SetPixel(HDC,int,int,COLORREF);//
或者:
BOOL CDC::SetPixelV(HDC,int,int,COLORREF);
nonocast 2003-12-07
  • 打赏
  • 举报
回复
SetPixel()
sokewoniu 2003-12-07
  • 打赏
  • 举报
回复
我的意思是每次启动一个新的线程,在该线程里调用循环函数。
sokewoniu 2003-12-07
  • 打赏
  • 举报
回复
楼住所言不可能实现。因为
wndproc()
{ case1:无限循环
case2://这里能不能中断上面的循环
}
只有等前一个符合条件的case1里的语句执行完后才能继续向下判断条件然后执行符合条件的case2里的语句。如上,只要第一个case1条件满足,该函数所在线程即陷入死循环。根本无法往下执行。如要实现楼住所言的功能只有将循环写在另一个函数里,每次在case1中启动该线程即可。

harrypotter 2003-12-07
  • 打赏
  • 举报
回复
消息可以发过去吧(可能也不能),
但是消息在消息队列中,由于上一个消息的处理函数是无限循环,一直退不出来,
所以你的第二个消息的处理函数也没有机会被调用啊.

当然前面的前提是两个消息是位于同一个消息队列中,看你的程序,显然是这样的.

你的问题可以在第一个case语句的一次循环后使用PeekMessage,然后TranslateMessage,DispatchMessage,把控制权先释放一下.

呵呵.
OnDraw 2003-12-07
  • 打赏
  • 举报
回复
1、好像不太能可
2、SetPixel(hdc,x,y,RGB(255,0,100));
subtop 2003-12-07
  • 打赏
  • 举报
回复
cdc::setpixel()
cdc::setpixelv()
GR 2003-12-07
  • 打赏
  • 举报
回复
我是说case 1 ;case2;

case2 中断case1。执行case2.然后跳回case1.这样行吗?,能给个具体例子么?


case1要无限循环的。


比如我按下一个键。发一个消息。在case2里处理的。这时候由于case1正在执行无限循环。我这个消息还发的过去么?,
窗口函数里的

望指点,,多谢
beyondtkl 2003-12-07
  • 打赏
  • 举报
回复
要看具体情况
return肯定是可以的.
break只是跳出本switch范围.
keiven 2003-12-07
  • 打赏
  • 举报
回复
SetPixel();

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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