-
Gesamte Inhalte
433 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von TinTin
-
-
void CListctrlDlg::InsertRow(CString csCsvData, int iCols) { CString csCsvBuffer; if (csCsvData.Right(1)!=";") csCsvData+=";"; int id = csCsvData.Find(';'), i = 1, iRow = LB_ERR; csCsvBuffer = csCsvData.Left(id); csCsvData = csCsvData.Mid(id + 1); int iIcon = atoi(csCsvBuffer); iRow = m_ctlList.InsertItem(m_ctlList.GetItemCount() +1, csCsvBuffer, iIcon); id = csCsvData.Find(';'); while (id != -1 && i < iCols && iRow != LB_ERR) { csCsvBuffer = csCsvData.Left(id); csCsvData = csCsvData.Mid(id + 1); m_ctlList.SetItemText(iRow, i, csCsvBuffer); i++; id = csCsvData.Find(';'); } return; }
so, dass ist die funktion die die liste füllt. 'csCsvData' beinhaltet eine zeile aus einer 'csv-datei', 'iCols' gibt die anzahl der felder an.
ich hoffe das wolltest du sehen.
ciao TinTin
-
Seid gegrüsst ...
...ich hätt da gerne mal wieder ein problem...
ich hab da eine CListCtrl/result in der ich in der ersten Spalte ein icon anzeige und dazu wird noch der erste wert (1 oder 0). das icon commt aus einem toolbar mit zwei
schaltflächen. daher die werte 1 oder null.
das ganze sieht so aus:
(col 1) (col 2) (col 2)
[icon0] 0 blabla blubb
soll aber so aussehen:
(col 1) (col 2) (col 2)
[icon0] blabla blubb
also der wert in der ersten spalte soll weg...
hat jemand eine idee???
ciao TinTin
-
bedankt,
netter tipp. jetzt is alles in butter...
ciao TinTin
-
danke,
hab ich dann auch gestern abend noch gefunden. ist aber noch nicht das was ich
eigentlich will, denn ich bekomme den focus nicht mehr weg. was ich eigentlich
machen will ist folgendes. ich habe ein editfeld, in dem steht ein name, bestehend
aus anrede, titel, vor- und nachname. nun soll, wenn ich mit der maus oder dem
tabulator auf das editfeld gehe ein kleiner dialog geöffent werden, der mir die
möglichkeit gibt den namen in seinen einzelteilen getrennt zu bearbeiten. z.b. den
vornamen ändern und aus einem doktor einen professor machen. beim schliessen
soll der string dann wieder zusammengebaut werden und im ersten editfeld agezeigt werden.
bei der EN_SETFOCUS lösung geht mir der bearbeitungs dialog immer wieder auf, da,
wenn dieser geschlossen wird das erste editfeld immer wieder den focus erhält.
hat jemand noch eine idee, die bei maus und tabulator einsatz funktioniert.
ciao TinTin
-
hi,
es ist wieder so weit, ich hätte da gern mal ein problem...
ich hab da in meiner dialoganwendung ein editfeld. jetzt hätte ich gerne, dass, wenn
man mit dem tabulator oder der maus den focus/cursor in dieses feld setzt, eine meldung
angezeigt wird.
ich hab schon ein wenig gesucht im forum und msdn, aber zu den schlagworten
focus, cursor oder CEdit hab ich nichts verwertbares gefunden. es gibt zwar ein
OnSetFocus() aber das ist wohl nur für COleObject.
die ganze sache kann ja eigentlich nicht so schwierig sein und ich seh mal wieder
den wald vor lauter bäumen nicht.
ich hoffe ihr könnte mich in die richtige richtung schubsen...
:confused:
ciao TinTin
-
hat zwar etwas gedauert, aber ich hab mich jetzt damit beschäftigt
und das sogar erfolgreich!!!
will mich nur für eure hilfe bedanken...
ciao TinTin
-
ok!!!
ich hatte schon mal in der msdn nach
GetModuleFileNameEx_ProcPtr
gesucht und nichts gefunden, jetzt wundert mich das nicht mehr.
danke, jetzt hab ich erst kapiert was ich da eigentlich mache.
mein erstes typedef...
Ciao TinTin
-
ok, das hat geholfen, bis zum nächsten fehler...
C:\projekte\process\processDlg.cpp(249) : error C2065: 'EnumProcessModules_ProcPtr' : nichtdeklarierter Bezeichner C:\projekte\process\processDlg.cpp(249) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpfnDLLProc' C:\projekte\process\processDlg.cpp(249) : error C2065: 'lpfnDLLProc' : nichtdeklarierter Bezeichner C:\projekte\process\processDlg.cpp(251) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetProcAddress' C:\projekte\process\processDlg.cpp(266) : error C2065: 'GetModuleFileNameEx_ProcPtr' : nichtdeklarierter Bezeichner C:\projekte\process\processDlg.cpp(266) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'lpfnDLLProc' C:\projekte\process\processDlg.cpp(268) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'GetProcAddress'
ich hab dann entsprechend typedefs für die anderen datentypen angelegt:typedef BOOL (CALLBACK* EnumProcesses_ProcPtr)(DWORD*, DWORD, DWORD*); typedef BOOL (CALLBACK* EnumProcessModules_ProcPtr)(DWORD*, DWORD, DWORD*); typedef BOOL (CALLBACK* GetModuleFileNameEx_ProcPtr)(DWORD*, DWORD, DWORD*);
bekomme dann folgende fehlermeldung:C:\projekte\process\processDlg.cpp(258) : error C2197: 'int (__stdcall *)(unsigned long *,unsigned long,unsigned long *)' : Zu viele Parameter uebergeben C:\projekte\process\processDlg.cpp(271) : error C2197: 'int (__stdcall *)(unsigned long *,unsigned long,unsigned long *)' : Zu viele Parameter uebergeben
im code werden 4 parameter übergeben, ich hab aber nur 3 definiert.lpfnDLLProc(hProcess, hMods, sizeof(hMods), &cbNeeded)
wenn ich noch ein 4 DWORD in den typedef schreibe, dann flippt alles aus.typedef BOOL (CALLBACK* GetModuleFileNameEx_ProcPtr)(DWORD*, DWORD, DWORD*, DWORD*);
C:\projekte\process\processDlg.cpp(271) : error C2664: 'int (unsigned long *,unsigned long,unsigned long *,unsigned long *)' : Konvertierung des Parameters 4 von 'unsigned int' in 'unsigned long *' nicht moeglich Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
ich steh hier wieder ein wenig auf dem schlauch...
darf ich das nicht als DWORD oder DWORD* vereinbaren?
wenn nicht, wie denn dann???
Ciao TinTin
-
hi,
ich bekomme hier
[COLOR=orangered]EnumProcesses_ProcPtr[/COLOR] lpfnDLLProc = NULL; lpfnDLLProc = (EnumProcesses_ProcPtr) GetProcAddress(m_hInstance, "EnumProcesses");
immer die mitteilung 'nichtdeklarierter bezeichner', finde aber auch nichts zu diesem
datentyp!?
ich hab die beiden funktionen
'EnumProc()' und 'PrintModules(DWORD processID)' als member funktionen in mein projekt (vc++ 6.0/mfc)
eingebunden.
muss ich sonnst noch was beachten???
Ciao TinTin
PS: ich hab bestimmt wieder was nicht gesehen oder so...
-
super, danke erstmal. bin aber noch nicht dazu
gekommen mich damit zu beschäftigen...
Ciao TinTin
-
bordsuche...
jaja, das versteht sich fast von selbst... nur muss man auch wissen wonach man
sucht, darum die frage.
ich werde mir mal diese CreateMutex() geschichte anschauen und danach suchen.
ich hoffe das geht auch mit dem vc++ 6.0.
danke für den tip...und ein rundes wochenende...
ciao TinTin
-
hi,
habt ihr die heissen tage alle gut überlebt?
ich will keine klagen hören!
:marine
zum thema:
ich habe ein programm und ich möchte das dieses programm nur einmal
gestartet werden kann. ok, öfter starten möchte ich es schon, aber immer
nur eimmal zur gleichen zeit.
jetzt die frage, wie stelle ich das am besten an. ich hab mir dazu schon mal
gedanken gemacht. das muss doch irgendwie mit einer prozess id zu machen
sein.
würde mich freuen, wnn mich jemand in die richtige richtung leiten könnte.
ciao TinTin
-
Bei der kannst du über den 3. Parameter die
ganzen Einstellungen des Druckers verändern, was sich aber glaube ich nicht auf die
Windowseinstellungen sondern nur in deinem Programm auswirkt.
kann ich mir denn kein handle oder so auf den aktuellen drucker holen und dessen einstellungen auslesen (PRINTER_DEFAULTS(?)) und diese verändern???
-
ja ja noch ne frage...
wie kann ich die einstellungen des aktuellen std. drucker auslesen,
diese ändern (z.b. hoch- in querformat ändern), mit diesen einstellungen
eine *.txt datei ausdrucken (querformat) und danach die standard einstellungen
wieder herstellen.
die *.txt datei ist eine log datei und muss immer quer gedruckt werden.
den ausdruck wollte ich mit ShellExecute() realiseren nur will ich nicht vor dem druck
den drucker um konfigurieren. das soll mein programm tun.
ich hoffe ich hab mich nicht zu kompliziert ausgedrückt.
-
hi,
ich hab da so einen plan. ich suche eine möglichkeit einen weiteren eintrag
in das kontextmenü des IE oder besser der standard browsers einzufügen,
der es mir erlaubt, wenn ein hyperlink mit der rechten maustaste angeklickt
wird, diesen in das Clipboard zu kopieren und von dort aus weiter zu verarbeiten.
z.b. in eine downloadliste einfügen.
hat jemand ne ahnung wie man sie da reinhängen kann, ich bin bei meinen
recherchen noch nicht so weit gekommen...
Ciao TinTin
-
Original geschrieben von Shlo
einfach BIF_NEWDIALOGSTYLE Flag setzen und halleluja!... ist ein Wunder geschehen
...aber auch nur ab der 5.x version der shell32.dll (afaik)...
hab das problem gelöst, siehe oben, bin aber noch an einer anderen lösund daran,
ok ich will mir nur ne eigene klasse basteln, aber manche dinge sollte man mal gemacht haben. wenns fertig ist, dann sag ich bescheid. warscheinlich kommen aber eh noch fragen meinerseits zu diesem thema.
danke erstmal für die infos...
...ciao TinTin
-
Hi,
kann mir jemand sagen wie ich an den Inhalt des clipboard komme?
...mit MFC und c++ 6.0...
ciao TinTin
-
jo,
danke für den link, den hatte ich dann auch selber schon gefunden.
bei 'codeproject.com' gibts noch mehr zu dem thema.
danke und ciao
TinTin
-
salut,
hab wieder mal ne kurze frage. kann denn 'SHBrowseForFolder' dialog erweitern?
ich würde gerne einen möglichkeit einbauen, mit der man an der angewähleten stelle
im baum einen neuen ordner anlegen kann. ich hab das schon ein paar mal bei anderen
programmen gesehen.
ist das überhaupt möglich? und wenn nicht, gibt es eine andere möglichkeit soetwas
zu realiseren?
char cPath[MAX_PATH] = {'\0'}; BROWSEINFO bi = {0}; bi.hwndOwner = m_hWnd; bi.ulFlags = BIF_EDITBOX; LPITEMIDLIST lpIDList = ::SHBrowseForFolder(&bi); if(NULL != lpIDList)::SHGetPathFromIDList(lpIDList, cPath);
so sieht mein bisheriger code aus. eventuell kann man was mit dem editfeld anfangen.
hab aber bisher noch nicht gefunden wie mann damit etwas vernünfitiges anstellt.
ciao TinTin
-
:uli
na wunderbar, manchmal reicht ein kleiner oder etwas grösserer impuls aus und schon klappt es.
ciao TinTin
-
:uli
na wunderbar, manchmal reicht ein kleiner oder etwas grösserer impuls aus und schon klappt es.
ciao TinTin
-
so, hab was zu den threads gefunden, weiss aber nicht genau, wie ich jetzt meinen
programmaufruf da rein bekomme.
HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to security attributes DWORD dwStackSize, // initial thread stack size LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function LPVOID lpParameter, // argument for new thread DWORD dwCreationFlags, // creation flags LPDWORD lpThreadId // pointer to receive thread ID );
muss ich zuerst mit CreateTread() einen Thread erstellen und das Handle was ich dann bekomme, zum erstellen eines neuen prozesses nutzen, oder kann ich den programmaufruf auch direkt mit CreateThread() erschlagen???LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function
der sinn und zweck dieser zeile bleibt mir etaws verborgen.
kann mir jemand dazu einen tip geben???
ciao TinTin
-
werde ich versuchen...
kannst du mir auch einen tip geben, wie ich das am besten mache???
ich würde mich freuen!!!
ciao TinTin
-
ich hab den thread schon gesehen und in einen anderen version verwendet.
mein vorrangiges problem ist, dass ich das erste programm mit dem der aufruf
gestartet wird, wärend das 2. programm läuft, nicht benutzen kann.
wie kann ich denn den aufruf starten, so dass ich mit beiden programmen arbeiten kann???
die geschichte mit der CPU auslastung hab ich schon gesehen und an einer anderen stelle gelöst...
ciao TinTin
CListCtrl/result - nur ein Icon in der 1. Col anzeigen?
in C++: Compiler, IDEs, APIs
Geschrieben
das war wieder mal zu einfach...
danke für deine hilfe!!!
ciao TinTin