Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Runde, Sternformige Fenster erstellen

Frage Entwicklung C und C++

Mitglied: 31640

31640 (Level 1)

07.07.2006, aktualisiert 23.10.2012, 7307 Aufrufe, 4 Kommentare

Erstellen von Fenster in verschieden Formen

Um ein rundes Fenster zu erstellen muss man die Funktion
01.
HRGN R; 
02.
R=Create***Rgn(i,j,i+1,j+1);	 
03.
SetWindowRgn(Handle, R, TRUE); 
04.
Statt *** setzt man name des Figurus(Ellipse für Kreis)
so
weist aber jemand was an dieser Funkton
01.
HRGN R1, R2; 
02.
for(int i=0;i<255;i++){ 
03.
	for(int j=0;j<255;j++){ 
04.
		if (!(picture->canvas->pixels[i][j]==clRed)){ 
05.
			R1=CreateRestangleRgn(i,j,i+1,j+1);	 
06.
		}	 
07.
		CombineRgn(R2,R2,R1,RGN_OR); 
08.
09.
10.
SetWindowRgn(Handle, R1, TRUE);
falsch ist?
werde sehr dankbar für eine Antwort.

Vprimachenko
Mitglied: filippg
07.07.2006 um 20:26 Uhr
Ich weiss nicht, ob das der Fehler ist, aber ich keine Figur, die sich "Restangle" nennt ( R1=CreateRestangleRgn(i,j,i+1,j+1); ).

Filipp
Bitte warten ..
Mitglied: 31640
07.07.2006, aktualisiert 23.10.2012
ja da hast du recht hab das jetzt umgeschrieben als

01.
#include <vcl.h> 
02.
#pragma hdrstop 
03.
 
04.
#include "Unit1.h" 
05.
//--------------------------------------------------------------------------- 
06.
#pragma package(smart_init) 
07.
#pragma resource "*.dfm" 
08.
TForm1 *Form1; 
09.
//--------------------------------------------------------------------------- 
10.
__fastcall TForm1::TForm1(TComponent* Owner) 
11.
        : TForm(Owner) 
12.
13.
14.
//--------------------------------------------------------------------------- 
15.
void __fastcall TForm1::FormCreate(TObject *Sender) 
16.
17.
Application->MessageBox("1","1",MB_OK); 
18.
HRGN R1, R2; 
19.
for(int i=0;i<255;i++){ 
20.
	for(int j=0;j<255;j++){ 
21.
		if (!(Image1->Canvas->Pixels[i][j] == clRed)){ 
22.
			R1=CreateRectRgn(i,j,i+1,j+1); 
23.
		        CombineRgn(R2,R2,R1,RGN_OR); 
24.
                       // Application->MessageBox(i,j,MB_OK); 
25.
26.
 
27.
28.
29.
Application->MessageBox("2","2",MB_OK); 
30.
SetWindowRgn(Form1->Handle, R2, true); 
31.
32.
//---------------------------------------------------------------------------
Hillft aber nicht ...
Bitte warten ..
Mitglied: 31640
10.07.2006, aktualisiert 23.10.2012
habe das fehler gefunden:
01.
 
02.
#include <vcl.h> 
03.
#pragma hdrstop 
04.
 
05.
#include "Unit1.h" 
06.
//--------------------------------------------------------------------------- 
07.
#pragma package(smart_init) 
08.
#pragma resource "*.dfm" 
09.
TForm1 *Form1; 
10.
//--------------------------------------------------------------------------- 
11.
__fastcall TForm1::TForm1(TComponent* Owner) 
12.
        : TForm(Owner) 
13.
14.
15.
//--------------------------------------------------------------------------- 
16.
void __fastcall TForm1::FormCreate(TObject *Sender) 
17.
18.
Application->MessageBox("1","1",MB_OK); 
19.
HRGN R1, R2; 
20.
R2=CreateRectRgn(0,0,1,1);    //erste RGN erstellen 
21.
for(int i=0;i<255;i++){ 
22.
	for(int j=0;j<255;j++){ 
23.
		if (!(Image1->Canvas->Pixels[i][j] == clRed)){ 
24.
			R1=CreateRectRgn(i,j,i+1,j+1); 
25.
		        CombineRgn(R2,R2,R1,RGN_OR); 
26.
                       // Application->MessageBox(i,j,MB_OK); 
27.
28.
 
29.
30.
31.
R1=CreateRectRgn(0,0,1,1);           //Erste RGN nochmal erstellen 
32.
CombineRgn(R2,R2,R1,RGN_DIFF); //wieder rausnehmen 
33.
Application->MessageBox("2","2",MB_OK); 
34.
SetWindowRgn(Form1->Handle, R2, true); 
35.
36.
//---------------------------------------------------------------------------
Man kann scheinbar nicht NULL mit RGN zusmmensetzen (funktion CombineRgn) also benutz ich son Umweg
Bitte warten ..
Mitglied: 31640
18.07.2006 um 09:53 Uhr
jetzt gibt´s ein Tuto dafür(mit Bild)!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Office 2007 Upgrade auf 2013 ständiges First Run Fenster (5)

Frage von xbast1x zum Thema Microsoft Office ...

Exchange Server
gelöst Exchange 2013 dynamische verteilerliste mit mehreren recipientfiltern erstellen (8)

Frage von blackhawk17 zum Thema Exchange Server ...

Batch & Shell
gelöst Mit Powershell schwarzes CMD-Fenster unterdrücken? (4)

Frage von Yauhun zum Thema Batch & Shell ...

Switche und Hubs
HP Aruba 2920 ACCESS-LIST erstellen? (8)

Frage von Henning32 zum Thema Switche und Hubs ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

Viren und Trojaner
Wie werde ich den Mist "fanli90" wieder los? (12)

Frage von Taumel zum Thema Viren und Trojaner ...