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, 7298 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
Netzwerkgrundlagen
IPsec - .conf und .secret erstellen aus Gruppe und User (8)

Frage von MaxMLe zum Thema Netzwerkgrundlagen ...

RedHat, CentOS, Fedora
gelöst Erstellen von Desktopverknüpfungen und Anpassung der Taskleiste (2)

Frage von honeybee zum Thema RedHat, CentOS, Fedora ...

Vmware
ESXI Template erstellen (2)

Frage von Phill93 zum Thema Vmware ...

Windows Server
RemoteApp Fenster kommt nicht in den Vordergrund (1)

Frage von thomasreischer zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...