本文整理汇总了C++中TImage::Draw方法的典型用法代码示例。如果您正苦于以下问题:C++ TImage::Draw方法的具体用法?C++ TImage::Draw怎么用?C++ TImage::Draw使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TImage
的用法示例。
在下文中一共展示了TImage::Draw方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: img2pad
void img2pad()
{
// Display image in canvas and pad.
//Author: valeriy Onuchin
TImage *img = TImage::Open("rose512.jpg");
if (!img) {
printf("Could not create an image... exit\n");
return;
}
img->SetConstRatio(kFALSE);
img->Draw("N");
TCanvas *c = gROOT->GetListOfCanvases()->FindObject("rose512jpg");
c->SetFixedAspectRatio();
TCanvas *c = new TCanvas("roses", "roses", 800, 800);
img->Draw("T100,100,yellow");
//img->Draw("T100,100,#556655");
//img->Draw("T100,100");
TImage *i1 = TImage::Open("rose512.jpg");
i1->SetConstRatio(kFALSE);
i1->Flip(90);
TImage *i2 = TImage::Open("rose512.jpg");
i2->SetConstRatio(kFALSE);
i2->Flip(180);
TImage *i3 = TImage::Open("rose512.jpg");
i3->SetConstRatio(kFALSE);
i3->Flip(270);
TImage *i4 = TImage::Open("rose512.jpg");
i4->SetConstRatio(kFALSE);
i4->Mirror(kTRUE);
float d = 0.40;
TPad *p1 = new TPad("i1", "i1", 0.05, 0.55, 0.05+d*i1->GetWidth()/i1->GetHeight(), 0.95);
TPad *p2 = new TPad("i2", "i2", 0.55, 0.55, 0.95, 0.55+d*i2->GetHeight()/i2->GetWidth());
TPad *p3 = new TPad("i3", "i3", 0.55, 0.05, 0.55+d*i3->GetWidth()/i3->GetHeight(), 0.45);
TPad *p4 = new TPad("i4", "i4", 0.05, 0.05, 0.45, 0.05+d*i4->GetHeight()/i4->GetWidth());
p1->Draw();
p1->cd();
i1->Draw();
c->cd();
p2->Draw();
p2->cd();
i2->Draw();
c->cd();
p3->Draw();
p3->cd();
i3->Draw();
c->cd();
p4->Draw();
p4->cd();
i4->Draw();
c->cd();
}
示例2: img2pad
void img2pad()
{
TImage *img = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
if (!img) {
printf("Could not create an image... exit\n");
return;
}
img->SetConstRatio(kFALSE);
img->Draw("N");
TCanvas *c = (TCanvas *)gROOT->GetListOfCanvases()->FindObject("rose512jpg");
c->SetFixedAspectRatio();
TCanvas *c1 = new TCanvas("roses", "roses", 800, 800);
img->Draw("T100,100,#ffff00");
/*img->Draw("T100,100,#556655");*/
/*img->Draw("T100,100");*/
TImage *i1 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
i1->SetConstRatio(kFALSE);
i1->Flip(90);
TImage *i2 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
i2->SetConstRatio(kFALSE);
i2->Flip(180);
TImage *i3 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
i3->SetConstRatio(kFALSE);
i3->Flip(270);
TImage *i4 = TImage::Open("$ROOTSYS/tutorials/image/rose512.jpg");
i4->SetConstRatio(kFALSE);
i4->Mirror(kTRUE);
float d = 0.40;
TPad *p1 = new TPad("i1", "i1", 0.05, 0.55, 0.05+d*i1->GetWidth()/i1->GetHeight(), 0.95);
TPad *p2 = new TPad("i2", "i2", 0.55, 0.55, 0.95, 0.55+d*i2->GetHeight()/i2->GetWidth());
TPad *p3 = new TPad("i3", "i3", 0.55, 0.05, 0.55+d*i3->GetWidth()/i3->GetHeight(), 0.45);
TPad *p4 = new TPad("i4", "i4", 0.05, 0.05, 0.45, 0.05+d*i4->GetHeight()/i4->GetWidth());
p1->Draw();
p1->cd();
i1->Draw();
c1->cd();
p2->Draw();
p2->cd();
i2->Draw();
c1->cd();
p3->Draw();
p3->cd();
i3->Draw();
c1->cd();
p4->Draw();
p4->cd();
i4->Draw();
c1->cd();
}
示例3: psview
void psview()
{
// set to batch mode -> do not display graphics
gROOT->SetBatch(1);
// create a PostScript file
TString dir = gROOT->GetTutorialDir();
dir.Append("/graphics/feynman.C");
gROOT->Macro(dir);
gPad->Print("feynman.eps");
// back to graphics mode
gROOT->SetBatch(0);
// create an image from PS file
TImage *ps = TImage::Open("feynman.eps");
if (!ps) {
printf("GhostScript (gs) program must be installed\n");
return;
}
new TCanvas("psexam", "Example how to display PS file in canvas", 600, 400);
TLatex *tex = new TLatex(0.06,0.9,"The picture below has been loaded from a PS file:");
tex->Draw();
TPad *eps = new TPad("eps", "eps", 0., 0., 1., 0.75);
eps->Draw();
eps->cd();
ps->Draw("xxx");
}
示例4: FITS_tutorial3
// Open a FITS file and retrieve the first plane of the image array
// as a TImage object
void FITS_tutorial3()
{
printf("\n\n--------------------------------\n");
printf("WELCOME TO FITS tutorial #3 !!!!\n");
printf("--------------------------------\n");
printf("We're gonna open a FITS file that contains several image\n");
printf("extensions. The primary HDU contains no data.\n");
printf("Data copyright: NASA\n\n");
if (!gROOT->IsBatch()) {
//printf("Press ENTER to start..."); getchar();
}
// Open extensions 1 to 5 from file
//printf("Press ENTER to see a canvas with all images within the file:"); getchar();
TCanvas *c = new TCanvas("c1", "FITS tutorial #1", 800, 700);
c->Divide(2,3);
for (int i=1; i <= 5; i++) {
TFITSHDU *hdu = new TFITSHDU("sample3.fits", i);
if (hdu == 0) {
printf("ERROR: could not access the HDU\n"); return;
}
TImage *im = hdu->ReadAsImage(0);
c->cd(i);
im->Draw();
delete hdu;
}
}
示例5: plot_logo
void plot_logo( Float_t v_scale = 1.0, Float_t skew = 1.0 )
{
TImage *img = findImage("tmva_logo.gif");
if (!img) {
cout << "+++ Could not open image tmva_logo.gif" << endl;
return;
}
img->SetConstRatio(kFALSE);
UInt_t h_ = img->GetHeight();
UInt_t w_ = img->GetWidth();
Float_t r = w_/h_;
gPad->Update();
Float_t rpad = Double_t(gPad->VtoAbsPixel(0) - gPad->VtoAbsPixel(1))/(gPad->UtoAbsPixel(1) - gPad->UtoAbsPixel(0));
r *= rpad;
Float_t d = 0.055;
// absolute coordinates
Float_t x1R = 1 - gStyle->GetPadRightMargin();
Float_t y1B = 1 - gStyle->GetPadTopMargin()+.01; // we like the logo to sit a bit above the histo
Float_t x1L = x1R - d*r/skew;
Float_t y1T = y1B + d*v_scale*skew;
if (y1T>0.99) y1T = 0.99;
TPad *p1 = new TPad("imgpad", "imgpad", x1L, y1B, x1R, y1T );
p1->SetRightMargin(0);
p1->SetBottomMargin(0);
p1->SetLeftMargin(0);
p1->SetTopMargin(0);
p1->Draw();
Int_t xSizeInPixel = p1->UtoAbsPixel(1) - p1->UtoAbsPixel(0);
Int_t ySizeInPixel = p1->VtoAbsPixel(0) - p1->VtoAbsPixel(1);
if (xSizeInPixel<=25 || ySizeInPixel<=25) {
delete p1;
return; // ROOT doesn't draw smaller than this
}
p1->cd();
img->Draw();
}
示例6: hist2image
void hist2image()
{
TCanvas *canv = new TCanvas("image", "xygaus + xygaus(5) + xylandau(10)");
canv->ToggleEventStatus();
canv->SetRightMargin(0.2);
canv->SetLeftMargin(0.01);
canv->SetTopMargin(0.01);
canv->SetBottomMargin(0.01);
// histogram as image (hist taken from draw2dopt.C)
TImage *img = TImage::Create();
TF2 *f2 = new TF2("f2","(xygaus + xygaus(5) + xylandau(10))",-4,4,-4,4);
Double_t params[] = {130,-1.4,1.8,1.5,1, 150,2,0.5,-2,0.5, 3600,-2,0.7,-3,0.3};
f2->SetParameters(params);
TH2D *h2 = new TH2D("h2","xygaus + xygaus(5) + xylandau(10)",100,-4,4,100,-4,4);
h2->FillRandom("f2",40000);
img->SetImage((const Double_t *)h2->GetArray(), h2->GetNbinsX() + 2,
h2->GetNbinsY() + 2, gHistImagePalette);
img->Draw();
img->StartPaletteEditor();
}
示例7: draw_activation
void draw_activation(TCanvas* c, Double_t cx, Double_t cy,
Double_t radx, Double_t rady, Int_t whichActivation)
{
TImage *activation = NULL;
switch (whichActivation) {
case 0:
activation = TImage::Open("sigmoid-small.png");
break;
case 1:
activation = TImage::Open("line-small.png");
break;
default:
cout << "Activation index " << whichActivation << " is not known." << endl;
cout << "You messed up or you need to modify network.C to introduce a new "
<< "activation function (and image) corresponding to this index" << endl;
}
if (activation == NULL) {
cout << "Could not create an image... exit" << endl;
return;
}
activation->SetConstRatio(kFALSE);
radx *= 0.7;
rady *= 0.7;
TString name = Form("activation%f%f", cx, cy);
TPad* p = new TPad(name+"", name+"", cx-radx, cy-rady, cx+radx, cy+rady);
p->Draw();
p->cd();
activation->Draw();
c->cd();
}
示例8: plotAnitaEventMap
void plotAnitaEventMap(Adu5Pat *patPtr,double phi,double theta){
double sourceLon,sourceLat,headLon,headLat,phi10Lon,phi10Lat,phi6Lon,phi6Lat,phi14Lon,phi14Lat,actualLat,actualLon,actual2Lat,actual2Lon;
float xEvent,yEvent,xAnita,yAnita,anitaLat,anitaLon,anitaAlt,xHead,yHead,x10,y10,x6,y6,x14,y14,yActual,xActual,yActual2,xActual2;
anitaLat = patPtr->latitude;
anitaLon = patPtr->longitude;
anitaAlt = patPtr->altitude;
UsefulAdu5Pat usefulPat(patPtr);
std::cout << "source " << std::endl;
//int sourceLoc = usefulPat.getSourceLonAndLatAltZero((180-phi)/180.*PI,(theta)/180.*PI,sourceLon,sourceLat);
int sourceLoc = usefulPat.getSourceLonAndLatAltZero((phi)/180.*PI,(theta)/180.*PI,sourceLon,sourceLat);
std::cout << std::endl << "heading " << std::endl;
int headLoc = usefulPat.getSourceLonAndLatAltZero(0./180.*PI,10./180.*PI,headLon,headLat);
std::cout << std::endl << "phi 10 " << std::endl;
int headLoc10 = usefulPat.getSourceLonAndLatAltZero(180./180.*PI,10./180.*PI,phi10Lon,phi10Lat);
std::cout << std::endl << "phi 14 " << std::endl;
int headLoc14 = usefulPat.getSourceLonAndLatAltZero(270./180.*PI,10./180.*PI,phi14Lon,phi14Lat);
std::cout << std::endl << "phi 6 " << std::endl;
int headLoc6 = usefulPat.getSourceLonAndLatAltZero(90./180.*PI,10./180.*PI,phi6Lon,phi6Lat);
std::cout << std::endl << "actual 14.5 " << std::endl;
int actualLoc = usefulPat.getSourceLonAndLatAltZero(phi/180.*PI,12.5/180.*PI,actualLon,actualLat);
std::cout << std::endl << "actual 4.5 " << std::endl;
int actualLoc2 = usefulPat.getSourceLonAndLatAltZero(phi/180.*PI,7.5/180.*PI,actual2Lon,actual2Lat);
//int sourceLoc = usefulPat.getSourceLonAndLatAltZero((phi)/180.*PI,(TMath::PiOver2()-theta)/180.*PI,sourceLon,sourceLat);
TImage *map = TImage::Open("/home/mottram/work/eventCorrelator/macros/antarcticaIceMap.png");
std::cout << "sourceLoc " << sourceLoc << " phi " << phi << " theta " << theta << " lon " << sourceLon << " lat " << sourceLat << std::endl;
gStyle->SetMarkerColor(kBlack);
//gStyle->SetMarkerSize(2);
gStyle->SetTextSize(0.02);
TMarker *anitaPos = new TMarker(xAnita,yAnita,23);
getRelXYFromLatLong(anitaLat,anitaLon,xAnita,yAnita);
getRelXYFromLatLong(static_cast<float>(sourceLat),static_cast<float>(sourceLon),xEvent,yEvent);
getRelXYFromLatLong(static_cast<float>(headLat),static_cast<float>(headLon),xHead,yHead);
getRelXYFromLatLong(static_cast<float>(phi10Lat),static_cast<float>(phi10Lon),x10,y10);
getRelXYFromLatLong(static_cast<float>(phi14Lat),static_cast<float>(phi14Lon),x14,y14);
getRelXYFromLatLong(static_cast<float>(phi6Lat),static_cast<float>(phi6Lon),x6,y6);
getRelXYFromLatLong(static_cast<float>(actualLat),static_cast<float>(actualLon),xActual,yActual);
getRelXYFromLatLong(static_cast<float>(actual2Lat),static_cast<float>(actual2Lon),xActual2,yActual2);
TCanvas *canMap=(TCanvas*)gROOT->FindObject("canMap");
if(!canMap)
canMap = new TCanvas("canMap","canMap",(int)xSize,(int)ySize);
canMap->Clear();
canMap->SetLogz();
canMap->SetTopMargin(0);
canMap->SetBottomMargin(0);
canMap->SetLeftMargin(0);
canMap->SetRightMargin(0);
map->Draw("");
TMarker *headingPos = new TMarker(xHead,yHead,29);
TMarker *heading14Pos = new TMarker(x14,y14,29);
TMarker *heading10Pos = new TMarker(x10,y10,29);
TMarker *heading6Pos = new TMarker(x6,y6,29);
TMarker *actualPos = new TMarker(xActual,yActual,29);
TMarker *actual2Pos = new TMarker(xActual2,yActual2,29);
headingPos->SetMarkerColor(kRed);
heading14Pos->SetMarkerColor(kGray);
heading10Pos->SetMarkerColor(kGray+2);
heading6Pos->SetMarkerColor(kViolet);
actualPos->SetMarkerColor(kRed+2);//12.5 theta
actual2Pos->SetMarkerColor(kBlue+2);//7.5 theta
headingPos->Draw("");
heading14Pos->Draw("");
heading10Pos->Draw("");
heading6Pos->Draw("");
actualPos->Draw("");
actual2Pos->Draw("");
anitaPos->DrawMarker(xAnita,yAnita);
TLatex *positionLabel=0;
char label[FILENAME_MAX];
if(sourceLoc==0){
if(anitaAlt<0){
sprintf(label,"Could not get event position, ANITA below 0 altitude!");
}
else if(theta>0){
sprintf(label,"Pointing upwards! Cannot locate source at ground position");
}
else{
sprintf(label,"Unkown error, cannot position source at 0 altitude");
}
positionLabel = new TLatex();
positionLabel->DrawLatex(0.05,0.95,label);
return;
}
TMarker *eventPos = new TMarker(xEvent,yEvent,29);
eventPos->SetMarkerColor(kBlack);
eventPos->Draw("");
sprintf(label,"ANITA location: lat %f; long %f; alt %f, x %f, y %f",anitaLat,anitaLon,anitaAlt,xAnita,yAnita);
//.........这里部分代码省略.........
示例9: rose_image
void rose_image()
{
// Display image in a new canvas and pad.
TImage *img = TImage::Open("rose512.jpg");
if (!img) {
printf("Could not create an image... exit\n");
return;
}
img->SetConstRatio(0);
img->SetImageQuality(TAttImage::kImgBest);
TString fp = gEnv->GetValue("Root.TTFontPath", "");
TString bc = fp + "/BlackChancery.ttf";
TString ar = fp + "/arial.ttf";
// draw text over image with funny font
img->DrawText(120, 160, "Hello World!", 32,
gROOT->GetColor(4)->AsHexString(),
bc, TImage::kShadeBelow);
// draw text over image with foreground specified by pixmap
img->DrawText(250, 350, "goodbye cruel world ...", 24, 0,
ar, TImage::kPlain, "fore.xpm");
TImage *img2 = TImage::Open("mditestbg.xpm");
// tile image
img2->Tile(img->GetWidth(), img->GetHeight());
c1 = new TCanvas("rose512", "examples of image manipulations", 760, 900);
c1->Divide(2, 3);
c1->cd(1);
img->Draw("xxx");
img->SetEditable(kTRUE);
c1->cd(2);
// averaging with mditestbg.xpm image
TImage *img3 = (TImage*)img->Clone("img3");
img3->Merge(img2, "allanon");
img3->Draw();
// contrasting (tint with itself)
c1->cd(3);
TImage *img4 = (TImage*)img->Clone("img4");
img4->Merge(img4, "tint");
// draw filled rectangle with magenta color
img4->FillRectangle("#FF00FF", 20, 220, 40, 40);
// Render multipoint alpha-blended gradient (R->G->B)
img4->Gradient(0, "#FF0000 #00FF00 #220000FF", 0, 50, 50, 100, 100);
// draw semi-transparent 3D button
img4->Bevel(300, 20, 160, 40, "#ffffffff", "#fe000000", 3, 0);
img4->DrawLine(10, 100, 100, 10, "#0000ff", 4);
img4->Draw();
// vectorize image. Reduce palette to 256 colors
c1->cd(4);
TImage *img5 = (TImage*)img->Clone("img5");
img5->Vectorize(256);
img5->Draw();
// quantization of the image
c1->cd(5);
TImage *img6 = (TImage*)img->Clone("img6");
TImagePalette *pal = (TImagePalette *)&img5->GetPalette();
TArrayD *arr = img6->GetArray(50, 40, pal);
img6->SetImage(arr->GetArray(), 50, 40, pal);
img6->Draw();
// HSV adjustment (convert red to yellow)
c1->cd(6);
TImage *img7 = (TImage*)img->Clone("img7");
img7->HSV(0, 40, 40);
img7->Draw();
}
示例10: TFile
void eventviewer::viewEvent_1() //Event viewer
{
//open beta
gStyle->SetOptStat(0);
aida_beta.GetTreeBETA(sinfile);
if (aida_beta.fChain==0) return;
//output
TFile* rootfile=new TFile(soutfile,"RECREATE");
//histograms
TCanvas* c1=new TCanvas("ss","ss",600,600);
TCanvas *c2rot = new TCanvas("c2rot","c2rot",300,300);
c1->Divide(2,2);
TH1F* hisx=new TH1F("hisX","hisX",128,0,128);
TH1F* hisy=new TH1F("hisY","hisY",128,0,128);
TH2F* hisxy=new TH2F("hisXY","hisXY",128,0,128,128,0,128);
TH1I* hisTX=new TH1I("hisTX","hisTX",200,-1500,1500);
TH1I* hisTY=new TH1I("hisTY","hisTY",200,-1500,1500);
//Start reading input file!
Long64_t nentries = aida_beta.GetEntries();
cout<<"Total entries="<<nentries<<endl;
Long64_t nbytes = 0, nb = 0;
Long64_t entriestobreak=nentries+10;
for (Long64_t jentry=0; jentry<nentries;jentry++) {
Long64_t ientry=aida_beta.LoadTree(jentry);
if (ientry<0) break;
nb=aida_beta.GetEntry(jentry);nbytes+=nb;
Double_t percent_complete=(Double_t)jentry/(Double_t)nentries*100;
if (jentry%3000==0) cout<<percent_complete<<" % data piece proceeded"<<endl;
//if (rawaida.Cut(ientry) < 0) continue;
if (jentry>entriestobreak) break;
hisx->Reset();
hisy->Reset();
hisxy->Reset();
hisTX->Reset();
hisTY->Reset();
hisx->SetTitle(Form("hisX%d",(Int_t)jentry));
hisy->SetTitle(Form("hisY%d",(Int_t)jentry));
hisxy->SetTitle(Form("hisXY%d",(Int_t)jentry));
Double_t totalExy=0;
//if (aida_beta.dssd_Z_mult[0]>0){
//if (aida_beta.pos_index_beta[0]==0&&aida_beta.npos_beta[0]>0){
for (Int_t i=0;i<128;i++){
Double_t ex=(Double_t)aida_beta.dssdH_E_X[0][i][0];
Double_t ey=(Double_t)aida_beta.dssdH_E_Y[0][i][0];
if (ex<0) ex=0.;
if (ey<0) ey=0.;
hisx->Fill(i,ex);
hisy->Fill(i,ey);
if (ex>0) hisTX->Fill(aida_beta.dssdH_T_X[0][i][0]-aida_beta.timestamp,ex);
if (ey>0) hisTY->Fill(aida_beta.dssdH_T_Y[0][i][0]-aida_beta.timestamp,ey);
for (Int_t j=0;j<128;j++){
Double_t eyy=(Double_t)aida_beta.dssdH_E_Y[0][j][0];
if (eyy<0) eyy=0.;
Double_t exy=ex+eyy;
hisxy->Fill(i,j,exy);
totalExy+=exy;
}
}
//perform operation here
//Draw to Canvas
//if (totalExy>0){
//if (aida_beta.dssd_Z_mult[0]>0){
c2rot->cd();
hisy->SetFillColor(3);
hisy->SetLineColor(3);
hisy->GetYaxis()->SetRangeUser(0,3000);
hisy->Draw();
c2rot->Update();
TImage *img = TImage::Create();
img->FromPad(c2rot);
cout<<"Entry="<<jentry<<endl;
c1->cd(1);
img->Flip(90);
img->Draw("x");
//hisy->Draw("his");
c1->cd(2);
hisxy->SetMaximum(3000);
hisxy->Draw("colz");
//Draw hit position
/*
//Get Hit position
Int_t beta_mult;
map<Int_t, vector<pair<pair<Double_t,Double_t>,pair<Double_t,Double_t> > > > map_beta;
map<Int_t, vector<pair<pair<Double_t,Double_t>,pair<Double_t,Double_t> > > >::iterator imap_beta;
map_beta.clear();
aida_beta.BetaGetPosNEW(0.3,beta_mult,map_beta);
TMarker* mk[beta_mult];
imap_beta = map_beta.find(0);
if(imap_beta != map_beta.end()){
Int_t beta_x = -1,beta_y = -1;
for(unsigned int jj=0; jj<imap_beta->second.size(); jj++){
beta_x=imap_beta->second[jj].first.first;
beta_y=imap_beta->second[jj].second.first;
//.........这里部分代码省略.........
示例11: EventHandler
// 窗口事件处理
Boolean TCommentDetailForm::EventHandler(TApplication * pApp, EventType * pEvent)
{
Boolean bHandled = FALSE;
switch (pEvent->eType)
{
case EVENT_WinInit:
{
_OnWinInitEvent(pApp, pEvent);
bHandled = TRUE;
break;
}
case EVENT_WinClose:
{
_OnWinClose(pApp, pEvent);
break;
}
case EVENT_WinEraseClient:
{
TDC dc(this);
WinEraseClientEventType *pEraseEvent = reinterpret_cast< WinEraseClientEventType* >( pEvent );
TRectangle rc(pEraseEvent->rc);
TRectangle rcBack(5, 142, 310, 314);
this->GetBounds(&rcBack);
// 擦除
dc.EraseRectangle(&rc, 0);
dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_title_bg), 0, 0, SCR_W,
GUI_API_STYLE_ALIGNMENT_LEFT);
//dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_bottom_bg), 0, rcBack.Bottom()-68,
//320, GUI_API_STYLE_ALIGNMENT_LEFT|GUI_API_STYLE_ALIGNMENT_TOP);
pEraseEvent->result = 1;
bHandled = TRUE;
}
break;
case EVENT_CtrlSelect:
{
bHandled = _OnCtrlSelectEvent(pApp, pEvent);
break;
}
case MSG_POST_THREAD_NOTIFY:
{
PostNotifyMsgDataType notifyData;
Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, sizeof(PostNotifyMsgDataType));
switch(notifyData.nEditType)
{
case ReplyUserCommentEdit:
case ReplyCommentEdit:
{
Set_Url_Params(KX_ReplyComment, "replycont", (char*)notifyData.PostMsgData.commentdata.pszCommentContent);
Set_Url_Params(KX_ReplyComment, "fuid", (char*)notifyData.PostMsgData.commentdata.nOuid);
Set_Url_Params(KX_ReplyComment, "thread_cid", (char*)notifyData.PostMsgData.commentdata.nId);
KaiXinAPICommon_Download(KX_ReplyComment, this->GetWindowHwndId());
break;
}
default:
break;
}
bHandled = TRUE;
}
break;
//下载完成消息在给各自form中处理模板
case MSG_DL_THREAD_NOTIFY:
{
NotifyMsgDataType notifyData;
Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, sizeof(NotifyMsgDataType));
bHandled = TRUE;
switch(notifyData.nAccessType)
{
case KX_PhotoDownload:
{
if( pBmp[notifyData.nParam] != NULL)
{
pBmp[notifyData.nParam]->Destroy();
pBmp[notifyData.nParam] = NULL;
}
pBmp[notifyData.nParam] = LoadImgByPath(notifyData.pszFilePath);
if(pBmp[notifyData.nParam])
{
TImage* pTImage;
pTImage = static_cast< TImage* >(this->GetControlPtr(m_iaTImageID[notifyData.nParam]));
if(pTImage)
{
pTImage->SetBitmap(pBmp[notifyData.nParam]);
//.........这里部分代码省略.........
示例12: EventHandler
// 窗口事件处理
Boolean TPhotosGetAlbumsForm::EventHandler(TApplication * pApp, EventType * pEvent)
{
Boolean bHandled = FALSE;
switch (pEvent->eType)
{
//窗口创建
case EVENT_WinInit:
{
_OnWinInitEvent(pApp, pEvent);
bHandled = TRUE;
}
break;
//窗口关闭
case EVENT_WinClose:
{
_OnWinClose(pApp, pEvent);
}
break;
//点击控件
case EVENT_CtrlSelect:
{
bHandled = _OnCtrlSelectEvent(pApp, pEvent);
}
break;
//控件获取焦点
case EVENT_CtrlSetFocus:
{
bHandled = _OnCtrlSetFocusEvent(pApp, pEvent);
}
break;
//控件丢失焦点
case EVENT_CtrlKillFocus :
{
bHandled = _OnCtrlKillFocusEvent(pApp, pEvent);
}
break;
//输入框内容变化
case EVENT_FieldChanged:
{
_OnFldChangedEvent(pApp, pEvent);
bHandled = TRUE;
}
break;
//窗口的背景
case EVENT_WinEraseClient:
{
TDC dc(this);
WinEraseClientEventType *pEraseEvent = reinterpret_cast< WinEraseClientEventType* >( pEvent );
TRectangle rc(pEraseEvent->rc);
dc.SetBackColor(RGB_COLOR_FORM_BACKGROUND);
dc.EraseRectangle(&rc, 0);
dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_RE_ID_BITMAP_title_bg), 0, 0, SCR_W,GUI_API_STYLE_ALIGNMENT_LEFT);
if(m_FormMode == FORM_MODE_MYHOME)
dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_RE_ID_BITMAP_Bottom_btn_bg), 0, BOTTOM_TAB_Y, SCR_W,GUI_API_STYLE_ALIGNMENT_LEFT);
pEraseEvent->result = 1;
bHandled = TRUE;
}
break;
// 右软键事件
case EVENT_KeyCommand:
{
if( pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_UP || pEvent->sParam1 == SYS_KEY_SOFTKEY_RIGHT_LONG )
{
// 模拟标题栏右按钮选中消息
HitControl(m_TitleBtnRight);
bHandled = TRUE;
}
}
break;
//下载完成事件
case MSG_DL_THREAD_NOTIFY:
{
NotifyMsgDataType notifyData;
Sys_GetMessageBody((MESSAGE_t *)pEvent, ¬ifyData, sizeof(NotifyMsgDataType));
bHandled = TRUE;
switch(notifyData.nAccessType)
{
case RR_PhotoDownload:
{
if(notifyData.nParam == FEED_PROFILE_IMAGE_INDEX)
{
//下载完后更新对应的图片
TBitmap* pDownLoadBitmap = NULL;
pDownLoadBitmap = LoadImgByPath(notifyData.pszFilePath);
if(pDownLoadBitmap)
{
TMaskButton* pLogo = NULL;
pLogo = static_cast<TMaskButton*>(GetControlPtr(m_ProfileImageID));
//.........这里部分代码省略.........