• 全部
  • 问答

通过按钮移动图片,老是闪烁

nicolaspm 2011-01-26 03:07:20
void CMyDLLImpl::draw(HWND hwnd, RECT & rc)
{
m_hWnd = hwnd;
//m_rc = &rc;
PAINTSTRUCT ps;
HDC hDC,hCDC;

hDC = BeginPaint(hwnd,&ps);
hCDC = CreateCompatibleDC(hDC);
m_repanitRc.bottom = rc.bottom;
m_repanitRc.top = rc.top;
m_repanitRc.left = rc.left;
m_repanitRc.right = rc.right;
m_hBitmap =LoadBitmap(GetModuleHandle("MyDll.dll"),
MAKEINTRESOURCE(IDB_BITMAP2));

HBRUSH brush = CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,0));
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)brush);

FillRect(hCDC,&rc,brush);

SelectObject(hCDC,m_hBitmap);
//ExcludeClipRect(hDC,m_rc.left,m_rc.top,m_rc.right,m_rc.bottom);

BitBlt(hDC,0,0,rc.right,rc.bottom,
hCDC,m_rc.left,m_rc.top,SRCCOPY);

DeleteDC(hCDC);
EndPaint(hwnd,&ps);
::InvalidateRect(hwnd,&rc,FALSE);

};

void CMyDLLImpl::on_btn_up_pressed()
{
m_rc.bottom += 5;
m_rc.top += 5;
::InvalidateRect(m_hWnd,&m_repanitRc,TRUE);
}
有什么办法解决吗?
...全文
36 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ihefe 2011-01-27
是否显卡驱动没安装
回复
skyaspnet 2011-01-26
[Quote=引用楼主 nicolaspm 的回复:]
void CMyDLLImpl::draw(HWND hwnd, RECT & rc)
{
m_hWnd = hwnd;
//m_rc = &rc;
PAINTSTRUCT ps;
HDC hDC,hCDC;

hDC = BeginPaint(hwnd,&ps);
hCDC = CreateCompatibleDC(hDC);
m_repanit……
[/Quote]

建议预加载图片,制造一个淡入淡出的效果,这样太生硬,自然闪烁了
回复
mmidd 2011-01-26
在, botton 的 窗口重新绘里调用加载图片

不要在bonnon 的容器里的ondraw里加载图片
回复
nicolaspm 2011-01-26
发错区了,怎么办??
回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
PHP
创建于2008-08-27

1.9w+

社区成员

“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
申请成为版主
帖子事件
创建了帖子
2011-01-26 03:07
社区公告
暂无公告