【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-Graphic2.cpp的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。
#include "stdafx.h"
#using <mscorlib.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
__gc class Graphic2:public Form
{
private:
int WitchBMP;
Color color;
Bitmap* bmp;
System::Drawing::Size Client_Size;
System::Drawing::Rectangle Client_Rectangle;
public:
Graphic2()
{
this->Text = S"Graphic2";
this->StartPosition = FormStartPosition::CenterScreen;
this->Size = System::Drawing::Size(600,468);
WitchBMP=0;
color=this->get_BackColor();
SetupFloatingMenu();
Paint += new PaintEventHandler(this,&Graphic2::PaintFunction);
Layout += new LayoutEventHandler(this, &Graphic2::LayoutFuction);
}
void PaintFunction(Object* ps, PaintEventArgs* pe) /*Paint事件处理函数*/
{
Graphics* gr = pe->Graphics; //获取Graphics对象
// pe->ClipRectangle //这是无效矩形区
System::Drawing::Font* font1;
font1 = new System::Drawing::Font("宋体", 8, FontStyle::Regular,
GraphicsUnit::Millimeter);
gr->DrawString(S"按鼠标右键执行浮动菜单命令显示各种位图",
font1,Brushes::Blue, 0,10);
gr->SetClip(Client_Rectangle); //对用户区重新设立箭辑区
gr->Clear(color); //对新设立箭辑区用color刷新
if(WitchBMP==0) return ;
gr->DrawImage(bmp,0,50); //画各种类型的bmp位图
}
void LayoutFuction(Object* ps, LayoutEventArgs* pArgs)
{
Client_Size = this->ClientSize; //获取用户区尺寸
//设立在用户区准备用于画图的一个矩形
Client_Rectangle = System::Drawing::Rectangle(0,50,
Client_Size.Width, Client_Size.Height-50);
}
//****************
void BitmapFile1(Object *pSender, EventArgs *pArgs)
{
WitchBMP=1;
bmp = new Bitmap(S"background.bmp"); //bmp对象对应于相应文件
color=Color::Beige;
this->Invalidate(Client_Rectangle); //宣布一个无效矩形区
this->Update(); //产生Paint事件更新无效矩形区,重画bmp
}
void BitmapFile2(Object *pSender, EventArgs *pArgs)
{
WitchBMP=2;
bmp = new Bitmap(S"dotnet.gif");
color=Color::BurlyWood;
this->Invalidate(Client_Rectangle);
this->Update();
Graphics* gs = CreateGraphics();
Point pt1(80,160);
Point pt2(480,360);
//创建一把过渡色(颜色变化有一个梯度)的刷子lgb
System::Drawing::Drawing2D::LinearGradientBrush* lgb =
new System::Drawing::Drawing2D::LinearGradientBrush
(pt1,pt2,Color::White, Color::Red);
gs->FillEllipse(lgb, 80,160, 400,200); //用lgb刷子剧椭圆
gs->Dispose();
}
void BitmapFile3(Object *pSender, EventArgs *pArgs)
{
WitchBMP=3;
bmp = new Bitmap(S"roses.jpg");
color=Color::LightCyan;
this->Invalidate(Client_Rectangle);
this->Update();
}
void BitmapFile4(Object *pSender, EventArgs *pArgs)
{
WitchBMP=4;
bmp = new Bitmap(S"iexplore.ico");
color=Color::LightCoral;
this->Invalidate(Client_Rectangle);
this->Update();
}
void BitmapFile5(Object *pSender, EventArgs *pArgs)
{
WitchBMP=5;
bmp = new Bitmap(S"ms.tif");
color=Color::Olive;
this->Invalidate(Client_Rectangle);
this->Update();
}
void BitmapFile6(Object *pSender, EventArgs *pArgs)
{
WitchBMP=6;
bmp = new Bitmap(S"globe.wmf");
color=Color::Blue;
this->Invalidate(Client_Rectangle);
this->Update();
}
//***************
void SetupFloatingMenu() //设置浮动菜单
{
MenuItem* item1 = new MenuItem(S"各种位图"); //
MenuItem* File1 =new MenuItem(S"BMP(.bmp)");
File1->Click +=new EventHandler(this, &Graphic2::BitmapFile1);
MenuItem* File2 =new MenuItem(S"GIF(.gif)");
File2->Click +=new EventHandler(this, &Graphic2::BitmapFile2);
MenuItem* File3 =new MenuItem(S"JPEG(.jpg)");
File3->Click +=new EventHandler(this, &Graphic2::BitmapFile3);
MenuItem* File4 =new MenuItem(S"ICON(.ico)");
File4->Click +=new EventHandler(this, &Graphic2::BitmapFile4);
MenuItem* File5 =new MenuItem(S"TIFF(.tif)");
File5->Click +=new EventHandler(this, &Graphic2::BitmapFile5);
MenuItem* File6 =new MenuItem(S"WMF(.wmf)");
File6->Click +=new EventHandler(this, &Graphic2::BitmapFile6);
MenuItem* File7 =new MenuItem(S"PNG");
MenuItem* File8 =new MenuItem(S"EXIF");
MenuItem* File9 =new MenuItem(S"EMF");
item1->MenuItems->Add(File1);
item1->MenuItems->Add(File2);
item1->MenuItems->Add(File3);
item1->MenuItems->Add(File4);
item1->MenuItems->Add(File5);
item1->MenuItems->Add(File6);
item1->MenuItems->Add(File7);
item1->MenuItems->Add(File8);
item1->MenuItems->Add(File9);
MenuItem* item2 = new MenuItem(S"其他");
MenuItem* item3=new MenuItem(S"帮助");
System::Windows::Forms::ContextMenu* popupMenu;
popupMenu= new System::Windows::Forms::ContextMenu();
popupMenu->MenuItems->Add(item1);
popupMenu->MenuItems->Add(item2);
popupMenu->MenuItems->Add(item3);
this->ContextMenu=popupMenu;
}
};
//This is the application entry point
void __stdcall WinMain(void)
{
Application::Run(new Graphic2());
}
上一篇:
main_helpform.pas
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?