Zum Inhalt springen

Board00

Mitglieder
  • Gesamte Inhalte

    49
  • Benutzer seit

  • Letzter Besuch

  1. Hallo an was kann es liegen das wenn ich ein Programm Kompiliere und danach aufrufe meine CPU Auslastung bei 100% liegt. Das Programm verursacht die 100% auslastung. bei Minimierung geht die Last sofort wieder runter und bei Maximierung des Programms bekomme wich wieder eine CPU Vollast. An was für ein problem kann es liegen, bzw. wie kann man erkenne warum das Programm soviel CPu Last brauch. MFG Board00
  2. Ja, das mache ich. Wie kann man das schon vorher machen oder geht das nicht? Wenn ich die TB_SETBUTTONINFO Message sende fliegt das Programm weg. Ich hab den Aufruf von Sendmessage mit TB_SETBUTTONINFO in die Schleife gepackt, ist das vllt verkehrt? Hast du eine Idee?
  3. Also Sendmessage war erfolgreich aber die Tooltips kamen immer noch nicht. Nun hab ich beim googeln was gefunden: Tooltip won't display over toolbar button - C Board NUn hab ich das versucht den Code an mein Programm anzupassen, aber erscheint über jedem Toolbutton der gleiche Tooltext (immer der erste String von meinem Textarry, in dem ich die Tooltips hinterlegt habe) for(int i =0; i < AnzahlButtons; i++) { if (*ToolButtonHilfsText[i] != *"") { tbButton[i].iString = SendMessage((*info).handles.Toolbar, TB_ADDSTRING, 0, (LPARAM) (LPSTR) ToolButtonHilfsText[i]); } else tbButton[i].iString = 0; } DWORD ToolButtonID[AnzahlButtons] = { ID_FILE_NEW, ID_FILE_MAKRO, ID_FILE_OPEN, ID_FILE_SAVE, ID_EDIT_CLEAR, 0, ID_HARDCOPY, 0, ID_STRUKTURIERTER_TEXT, 0, ID_EINGANG_PLUS, ID_EINGANG_MINUS, 0, ID_ZOOM_PLUS, ID_ZOOM_MINUS, 0, ID_HELP, 0 }; char* ToolButtonHilfsText[AnzahlButtons] = { "Neues FUP-Projekt", "Neues Makro-Projekt", "Projekt Öffnen", "Projekt Speichern", "letztes eingefügtes Element löschen", "HARDCOPY", "", "erzeuge Strukturierten Text", "", "Eingang hinzufügen", "Eingang entfernen", "", "herein zoomen", "heraus zoomen", "", "Hilfe", "", "" }; Hast du eine Idee, woran es liegt?
  4. Hallo Danke für deinen Tipp aber es funktioniert noch nicht bei mir. so sieht jetzt mein Quellcode aus für die Umgebung.h also wo die Toolbar erzeugt wird bool ErstelleArbeitsFenster(HWND Handle,ProgrammInformation *info) { RECT rect; GetClientRect(Handle,&rect); (*info).handles.Arbeitsfenster = CreateWindow ( TEXT("Arbeitsfenster"), NULL, WS_CHILDWINDOW | WS_VISIBLE, 0,0, rect.right,rect.bottom, Handle,NULL, (*info).hInstance, NULL) ; if ((*info).handles.Arbeitsfenster == NULL) return FALSE; // Toolbar erstellen (*info).handles.Toolbar = CreateToolbarEx((*info).handles.Arbeitsfenster, // parent WS_CHILD | WS_BORDER | WS_VISIBLE | TBSTYLE_TOOLTIPS, // style IDR_TOOLBAR, // toolbar id AnzahlButtons, // number of bitmaps (*info).hInstance, // mod instance IDB_TOOLBAR, // resource id for the bitmap (LPCTBBUTTON)&tbButton, // address of buttons AnzahlButtons, // number of buttons 16,16, // width & height of the buttons 16,16, // width & height of the bitmaps sizeof(TBBUTTON) ); if ((*info).handles.Toolbar == NULL) return FALSE; HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (*info).handles.Arbeitsfenster, NULL,info->hInstance, NULL); if (NULL != hwndTip) { Programminfo.handles.ToolTip = hwndTip; SetWindowPos(hwndTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); } TOOLINFO ti; ti.cbSize = sizeof(TOOLINFO); ti.uFlags = TTF_SUBCLASS; ti.hwnd = info->handles.Arbeitsfenster; ti.hinst = info->hInstance; ti.rect.left=1; ti.rect.top=1; ti.rect.bottom=200; //ti.rect.left = 0; //ti.rect.top = 0; //ti.rect.right = 100; //ti.rect.bottom = 100; for(int i =0; i < AnzahlButtons; i++) { int x; if( ToolButtonHilfsText[i][0]==0) x=6; // Separator else x=22; // normaler Button ti.rect.right = ti.rect.left + x; ti.lpszText = ToolButtonHilfsText[i]; SendMessage(hwndTip, TTM_ADDTOOL, 0,(LPARAM)&ti); ti.rect.left = ti.rect.right + 1; } return TRUE; } und so schaut der Quelltext vom Hauptprogramm.h aus wo die elemente definiert werden für die Toolbar const int AnzahlButtons = 18; #define ID_FILE_NEW 0xE100 #define ID_FILE_OPEN 0xE101 #define ID_FILE_SAVE 0xE103 #define ID_FILE_SAVE_AS 0xE104 #define ID_EDIT_CLEAR 0xE120 #define ID_HELP 0xE146 #define ID_HELP_INDEX 0xE142 // Die Elemente für die Toolbar TBBUTTON tbButton[] = { {0, ID_FILE_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, //{0, ID_FILE_NEWtb, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {16, ID_FILE_MAKRO, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {1, ID_FILE_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {2, ID_FILE_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, //{4, ID_FILE_SAVE_AS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, //{0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {3, ID_EDIT_CLEAR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {12, ID_HARDCOPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {7, ID_STRUKTURIERTER_TEXT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {9, ID_EINGANG_PLUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {10, ID_EINGANG_MINUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {14, ID_ZOOM_PLUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {15, ID_ZOOM_MINUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {11, ID_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, //{13, ID_INFO, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0} }; char* ToolButtonHilfsText[AnzahlButtons] = { "Neues FUP-Projekt", "Neues Makro-Projekt", "Projekt Öffnen", "Projekt Speichern", "letztes eingefügtes Element löschen", "HARDCOPY", "", "erzeuge Strukturierten Text", "", "Eingang hinzufügen", "Eingang entfernen", "", "herein zoomen", "heraus zoomen", "", "Hilfe", "", "" }; aber leider wird immernoch kein tooltip erzeugt wenn ich mit der Maus darüber fahre. Weis einer rat?? Oder was mache ich falsch??
  5. HAllo, ich habe mal wieder ein problem. Ich habe eine Toolbar (siehe Bild) die einzelnen elemte sind dafür in einem Bitmap gespeichert das Bitmap schaut so aus (sihe Bild) Die einzlnen Elemente werden aus dem bitmap gelesen denn aller 15*16 Pixel entspricht ein symbol. diese werden in einer header datei geladen // Die Elemente für die Toolbar TBBUTTON tbButton[] = { //{0, ID_FILE_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {16, ID_FILE_NEWtb, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, ID_FILE_MAKRO, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {1, ID_FILE_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {2, ID_FILE_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, //{4, ID_FILE_SAVE_AS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, //{0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {3, ID_EDIT_CLEAR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {12, ID_HARDCOPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {7, ID_STRUKTURIERTER_TEXT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {9, ID_EINGANG_PLUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {10, ID_EINGANG_MINUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {14, ID_ZOOM_PLUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {15, ID_ZOOM_MINUS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, {11, ID_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0}, {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0L, 0}, //{13, ID_INFO, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0} }; Die anfangs zahlen entpricht den Symbol auf den Bitmap. Nun meine Frage wie kann ich realiesieren das wenn ich über ein BUtton mit der Maus bin, dann sich dann pro button so ein Tooltip öffnet wo der name des Butten steht. Bsp. Maus ist über der dem Button OPEN das dann steht öffnen. Quasi so eine art mousovereffekt wie bei java. Danke im VOrraus.
  6. Ich habe ein Array von einer struct definiert und möchte in einer Funktion die Werte in dem Array bearbeiten. Wenn ich das Array normal übergebe dann werden die veränderten Daten beim Beenden der funktion nicht verändert. Also brauch ich einen Zeiger darauf, oder? Kann mir mal jemand ein kleines Beispiel dazu erstellen und dies ein bisschen kommentieren. Das ist meine Struktur: struct BausteinNummernSpeicher { int alteBausteinNummer; int neueBausteinNummer; }; Dann erstelle ich eine Array: BausteinNummernSpeicher Array[255]; Dieses Array würde ich nun gerne einer FUnktion übergeben, diese soll was machen und die Daten dann wieder in das Array schreiben. Könnt ihr mir mal erklären, wie man das macht?
  7. ich sag nix weiter ah ok thx
  8. ja danke habe gerade den selben tipp in einen anderen Forum bekommen. Kann es sein das du dort auch der freundliche Helfer warst. denn dort ist die selbe Signatur wie hier. Aber was ist wenn jetzt zb hinter YBYA eine mehrstellige zahl steht wie zb 199 wie bekomme ich die dort raus. da ja die zahl sich aus 3 stellen zusamensetzt aus der 5,6 und7 stelle.?
  9. könnte ich bitte mal ein bsp bekommen für strstr.
  10. so sieht mein quellcode jetzt aus BausteinNummernSpeicher *Zeiger; char* Zahl; int alteBsNr; char Wert; Zeiger = (BausteinNummernSpeicher *) GlobalLock(Speicher); if (NULL == Zeiger) return false; while(((*Hilfszeiger) != ';') && ((*Hilfszeiger) != '!')) { (*Output) = (*Hilfszeiger); if (isdigit(Hilfszeiger[0])) { Wert = Hilfszeiger[0]; strcpy(Zahl,Hilfszeiger[0]); strcat(Zahl,"\0"); char* puffer = _atoi(Zahl); } Output ++; Hilfszeiger ++; }; (*Output) = '\0'; GlobalUnlock(Speicher); return true; im Hilfszeiger sieht es so aus "0x0012f279 "1;AP2;YBYA1:bBXB12;PVO!"
  11. bei mir funktioniert aber nicht atoi Fehlermeldung: 'Initialisierung': 'int' kann nicht in 'char *' konvertiert werden
  12. ja aber atoi geht nicht denn wenn ich nur die zahl auslesen will steht vor der zahl der Asci code im Zeiger also der wert 52 für die 4 deshalb funzt atoi nicht.
  13. Ok, isdigit kannte ich nicht. Ich hab einen String und dazwischen ist eine Zahl. Bei einer Ziffer ist das mit isDigit kein Problem, was amche ich wenn die Zahl aus mehreren Ziffern besteht? Wie kriege ich diese Zahl dann in eine int Variable, weil ich damit was überprüfen will und gegebenfalls die Zahl druch einen andere ersetzen muss? :hells:
  14. So, der Fehler hat sich in Luft aufgelöst, wie auch alle anderen Speicherfehler. Ich hab mal die Trial von der VS 2005 TS geladen und den Code durch die Codeanalyse gejagt, da hat mir das VS einige NULL-Pointer Dereferenzierungen angemant. Ich hab den Zeiger erst auf ungleich NULL geprüft und dann weiter gearbeitet. Nun ist alles in Ordnung :floet:

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...