关于GDI+画线.闪的厉害,该如何处理
关于GDI+画线.闪的厉害
用GDI+画的一线条
//------------------------------------
#ifndef uMainH
#define uMainH
//---------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <math.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <algorithm>
using std::min;
using std::max;
#include <gdiPlus.h>
using namespace Gdiplus;
//---------------------------------------
class TfrmMain : public TForm
{
__published: // IDE-managed Components
TTimer *Timer1;
void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y);
private: // User declarations
ULONG_PTR m_GdiplusToken;
Gdiplus::GdiplusStartupInput m_GdiplusStartupInput;
public: // User declarations
__fastcall TfrmMain(TComponent* Owner);
__fastcall ~TfrmMain(void);
};
//---------------------------------------
extern PACKAGE TfrmMain *frmMain;
//---------------------------------------
#endif
cpp
#include <vcl.h>
#include "math.h "
#pragma hdrstop
#include "uMain.h "
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm "
TfrmMain *frmMain;
//---------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
// init GDI+
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput, NULL);
//
}
//---------------------------------------
__fastcall TfrmMain::~TfrmMain(void)
{
GdiplusShutdown(m_GdiplusToken); // Close GDI+
}
//---------------------------------------
void __fastcall TfrmMain::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
const static int OX = 0, OY = 0;
const static REAL C = 140;
static REAL offset = 0;
POINT p[4];
REAL k[4];
// 生成正文形四角的新坐标值
for (int i=0; i < 2; i++)
{
p[i].x = (int)(OX+X) ;
p[i].y = (int)(OY+i*250);
用GDI+画的一线条
//------------------------------------
#ifndef uMainH
#define uMainH
//---------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <math.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <algorithm>
using std::min;
using std::max;
#include <gdiPlus.h>
using namespace Gdiplus;
//---------------------------------------
class TfrmMain : public TForm
{
__published: // IDE-managed Components
TTimer *Timer1;
void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y);
private: // User declarations
ULONG_PTR m_GdiplusToken;
Gdiplus::GdiplusStartupInput m_GdiplusStartupInput;
public: // User declarations
__fastcall TfrmMain(TComponent* Owner);
__fastcall ~TfrmMain(void);
};
//---------------------------------------
extern PACKAGE TfrmMain *frmMain;
//---------------------------------------
#endif
cpp
#include <vcl.h>
#include "math.h "
#pragma hdrstop
#include "uMain.h "
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm "
TfrmMain *frmMain;
//---------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
// init GDI+
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput, NULL);
//
}
//---------------------------------------
__fastcall TfrmMain::~TfrmMain(void)
{
GdiplusShutdown(m_GdiplusToken); // Close GDI+
}
//---------------------------------------
void __fastcall TfrmMain::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
const static int OX = 0, OY = 0;
const static REAL C = 140;
static REAL offset = 0;
POINT p[4];
REAL k[4];
// 生成正文形四角的新坐标值
for (int i=0; i < 2; i++)
{
p[i].x = (int)(OX+X) ;
p[i].y = (int)(OY+i*250);