如何自由调用onPaint()函数,实现对图形的控制

问题描述

情况如下:点击窗体菜单项“图形”时,弹出对话框,通过该对话框用户可以选择“直线,圆形“,(直线要求输入两端点的xy坐标,对于圆则要求输入圆心和半径)在窗体上画出相应图形。问题:关闭对话框后如何调用窗体的onpaint()的方法实现能自由画圆或者直线?

解决方案

解决方案二:
up!我在线等,麻烦大家了。我搞了好久都卡在这里了。
解决方案三:
up!!!
解决方案四:
对话框应该是个新form,用他传值,然后在form1里用this.Invalidate();不是就可以调用paint了吗
解决方案五:
调用Invalidate会使窗体表面无效,就会产生重绘事件,就会自动调用相应的事件处理方法。
解决方案六:
谢谢,上面两位,我去试试

时间: 2024-08-02 01:12:44

如何自由调用onPaint()函数,实现对图形的控制的相关文章

OnPaint()函数的作用原理

WM_PAINT是窗口每次重绘都会产生的一个消息. OnPaint是对这个消息的反应函数   mfc 的 CWnd::OnPaint 没做什么,只是丢给系统处理. 一 :    先执行OnEraseBkgnd,擦除背景(如果想自绘控件,这个函数直接return TRUE就可以了,这样就不会擦除背景,不会闪)   OnEraseBkGnd与OnPaint的区别与联系 在OnEraseBkGnd中,如果你不调用原来缺省的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面,由于它

位图显示-MFC中OnPaint函数显示BMP图片的问题

问题描述 MFC中OnPaint函数显示BMP图片的问题 为什么我在MFC对话框中,在OnPaint函数中加入以下代码,BMP图像不能显示啊~~· BITMAP bm; CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CDC memdc; CDC dc; memdc.CreateCompatibleDC(&dc);/ bmp.GetBitmap(&bm); CBitmap *bmpold=memdc.SelectObject(&bmp);/ dc

Applet调用&#106avascript函数

函数 在做的的applet中用到了调用javascript程序调用方法如下:1 首先引入JSObject 包 // LiveConnect... for JavaScriptimport netscape.javascript.JSObject ;2 在调用js的地方用:try { // 创创建JSObjectJSObject.getWindow (this).eval ("javascript::window.open()")}catch (Exception ex) { 错误提示}

sql server 2005中使用apply对每行调用表值函数

server|函数 使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数.表值函数作为右输入,外部表表达式作为左输入.通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出.APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表. <?XML:NAMESPACE PREFIX = O /> APPLY 有两种形式: CROSS APPLY 和 OUTER APPLY.CROSS APPLY 仅返回外部表中通过表值函数生成结果

JAVA/JSP学习系列之十三(Applet调用&amp;#106avascript函数)(译)

js|函数 下面的例子将说明在applet中去调用javascript函数 . 一.applet源代码(tmin_JS.java) // Importationsimport java.awt.Graphics ;import java.awt.Event ; // LiveConnect... for JavaScriptimport netscape.javascript.JSObject ; public class tmin_JS extends java.applet.Applet {

C#中调用API函数RegisterHotKey注册多个系统热键

函数 要设置快捷键必须使用user32.dll下面的两个方法. BOOL RegisterHotKey( //注册系统热键的API函数 HWND hWnd, int id, UINT fsModifiers, UINT vk );  BOOL UnregisterHotKey( //删除系统热键的API函数 HWND hWnd, int id );  在C#中引用命名空间System.Runtime.InteropServices;来加载非托管类user32.dllusing System;us

《Effective C++》读书笔记09:绝不在构造和析构过程中调用virtual函数

首先明确一下,对于一个继承体系,构造函数是从基类开始调用了,而析构函数则正 好相反,从最外层的类开始. 对于在构造函数中调用virtual函数,先举个例子: 1 class Transaction //所有交易的基类 2 { 3 public: 4 Transaction(); 5 virtual void logTransaction() const = 0;//日志记 录,因交易类型的不同而有不同的记录 6 } 7 8 Transaction::Transaction()//构造函数实现 9

调用虚拟函数、持续化视图状态及POD类型概念

在 C++ 中,无法从某个类的构造函数中调用派生的虚拟函数,因为虚表还没有完全建立.但是在C#中好像就可以,是这样吗?为什么会有这种差别呢? 确实如此,在这个方面 C# 与 C++ 是有差别的.在 C++ 中,如果你从构造函数或者析构函数中调用虚拟函数,编译器调用的虚拟函数是定义在这个正在被构造的类实例中的(例如,如果从 Base::Base 中调用 Base::SomeVirtFn ),不是最底层派生的实例(the most derived instance),正像你说的那样,因为在最底层派生

JS随机调用指定函数的方法

  本文实例讲述了JS随机调用指定函数的方法.分享给大家供大家参考.具体如下: 本代码通过随机定时器调用指定函数,可达到间隔随机时间之行指定的函数的目的 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 function randRange(data) { var newTime = data[Math.floor(data.length * Math.random())]; return newTime; } function toggleSomething() { var ti