-
Gesamte Inhalte
433 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von TinTin
-
-
schon mal im Forum gesucht?
http://forum.fachinformatiker.de/search.php?searchid=259050
Suchwort war: 'CFILE'
ciao TinTin
-
Können sie mir bitte einen beispiel Code zeigen, mit dem ich das Zeichensetzt in string's speichern kann??
???
Wie kommen den die Daten ins HTML-Format? Hast du darauf Einfluss? Oder
greift dein Browser auf eine fertige Datei zu?
-
-
Der Vollständigkeit halber, so hab ich 's gelöst:
void CMyDlg::OnBuFolder() { char szBuffer[MAX_PATH]; LPMALLOC pMalloc = NULL; LPITEMIDLIST pidl = NULL; BROWSEINFO bi; CoInitialize(NULL); ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner = m_hWnd; bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_USENEWUI | BIF_EDITBOX | BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; bi.lpfn = (BFFCALLBACK)&BrowseCallbackProc; bi.lParam = (LPARAM)this; pidl = SHBrowseForFolder(&bi); if (pidl != NULL) { SHGetPathFromIDList(pidl,szBuffer); if (szBuffer[0] == '\0') GetCurrentDirectory(sizeof(szBuffer),szBuffer); m_csFolder = szBuffer; if (m_csFolder.ReverseFind('\\') != m_csFolder.GetLength()-1) { m_csFolder += "\\"; } } if(SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc) { pMalloc->Free(pidl); pMalloc->Release(); } CoUninitialize(); UpdateData(FALSE); } int CALLBACK CMyDlg::BrowseCallbackProc(HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { CName2TagVvDlg* pThis = (CName2TagVvDlg*)lpData; ASSERT( pThis != NULL ); switch(uMsg) { case BFFM_INITIALIZED: { TCHAR szText[MAX_PATH] = {0}; if (!pThis->m_csFolder.IsEmpty()) { strcpy(szText,pThis->m_csFolder); } else GetCurrentDirectory(sizeof(szText),szText); ::SendMessage( hWnd,BFFM_SETSELECTION, TRUE, reinterpret_cast<LPARAM>(szText)); } break; case BFFM_SELCHANGED: { TCHAR szText[MAX_PATH] = {0}; SHGetPathFromIDList(reinterpret_cast<LPITEMIDLIST>(lParam), szText); ::SendMessage(hWnd, BFFM_SETSTATUSTEXT, 0,reinterpret_cast<LPARAM>(szText)); } break; } return 0; }
TinTin
-
Sorry, ich hab deine Frage jetzt ein paar mal gelesen, aber wirklich verstanden
was du willst habe ich nicht. Liegen deine Tabellen nur im HTML-Format vor?
Oder hast du die Werte in irgend einer anderen Form vorliegen?
TinTin
PS: Form, Rechtschreibung und Ausdruck sind nicht nur schmückendes Beiwerk.
-
int CALLBACK BrowseCallbackProc( HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { if(BFFM_INITIALIZED == uMsg) { TCHAR szText[MAX_PATH] = {0}; GetCurrentDirectory(sizeof(szText),szText); SendMessage(hWnd, BFFM_SETSELECTION, TRUE, reinterpret_cast<LPARAM>(szText)); } return 0; }
OK, so gehts jetzt. Stelltsich nur abschliesend die Frage, wie übergebe ich am
besten dynamisch einen Pfad über den lParam in die BROWSEINFO?
Wie Übergebe ich das am besten?
TinTin
-
ich habe meine Callback Funktion jetzt so aufgebaut, aber da tut sich nichts.
Will meinen es wird nichts vorbelegt, bzw. aufgeklappt.
int CALLBACK BrowseCallbackProc( HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { WCHAR pChar[MAX_PATH] = L"d:\\temp\0"; if(BFFM_INITIALIZED == uMsg) { AfxMessageBox("BFFM_INITIALIZED"); SendMessage(hWnd, BFFM_SETSELECTION, TRUE, reinterpret_cast<LPARAM>(pChar)); } return 0; }
-
Sind die einzelnen Buttons Kindfenster der Toolbar? Dann könntest du die einfach durchenumerieren.
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, [B][COLOR=DarkRed]WS_CHILD[/COLOR][/B] | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Symbolleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung }
Nach dem hier:
WS_CHILD Creates a child window. Cannot be used with the WS_POPUP style.ist die ToolBar ein Kindfenster vom MainFrm, was jetzt aber mit den Button ist
kann ich nicht genau sagen. Was müsste ich denn machen um die durchzunummerieren?
Kann mir jemand was zu dem Assertion fehler Sagen, was stimmt nicht mit
meinem h_hWnd???
Es muss doch möglich sein den Blöden ToolTipText zur laufzeit zu ändern.
TinTin
-
Wiso bekomme ich eigentlich eine Assertion an dieser Stelle?
-> ASSERT(::IsWindow(m_hWnd));Ist OnCreate etwa der Falsche Ort?
EDIT:
Für heute ist es mir
egal->BisMorgen(Wink);
-
Du fragst ja Sachen. Kann ich Dir gar nicht genau sagen. Das Project ist ein
standard MFC/MDI Projekt. Und derToolBar ist 'IDR_MAINFRAME' mit Neu, Öffnen, usw.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Symbolleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung } CString csText; CToolInfo ToolInfo; m_wndToolBar.GetToolBarCtrl().GetToolTips()->GetText(csText,XXX); return 0; }
So Schaut das bei mir in der 'mainfrm.cpp' aus. Egal ob GetText() oder GetToolTips(), immer wenn ich sachen wie NULL, this usw, als Pointer bekomme ich eine Access Violation mit einem Hinweis auf diese Stelle.void CToolTipCtrl::GetText(CString& str, CWnd* pWnd, UINT nIDTool) const { [COLOR=DarkOrange][B]->[/B][/COLOR] ASSERT(::IsWindow(m_hWnd)); ASSERT(pWnd != NULL); TOOLINFO ti; FillInToolInfo(ti, pWnd, nIDTool); ti.lpszText = str.GetBuffer(256); ::SendMessage(m_hWnd, TTM_GETTEXT, 0, (LPARAM)&ti); str.ReleaseBuffer(); }
-
CToolInfo ToolInfo; m_wndToolBar.GetToolBarCtrl().GetToolTips()->GetToolInfo(ToolInfo,[COLOR=DarkRed][B]XXX[/B][/COLOR]);
so komme ich wohl von der Nase ans Gehirn. Bleibt nur die Frage was gebe ich der Methode zu fressen (XXX)? Und jetzt bitte keine himweise wie z.B.BOOL GetToolInfo( CToolInfo& ToolInfo, CWnd* pWnd, UINT_PTR nIDTool = 0 ) const;
Wie komme ich an den sch**ß Fensterzeiger.
Nichts für Ungut, nur fehlen mir schon fast alle Haare ...
-
so, nach einigen probieren und wenigen ergebnissen bin ich wieder da und meine frage hat sich etwas verändert.
so steht es in meiner 'mainfrm.cpp'
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | [B][COLOR=DarkRed]CBRS_TOOLTIPS[/COLOR][/B] | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Symbolleiste konnte nicht erstellt werden\n"); return -1; // Fehler bei Erstellung }
zu CBRS_TOOLTIP heisst es in der MSDN:
CBRS_TOOLTIPS Control bar displays tool tips.wenn ich CBRS_TOOLTIP aus dem Code entferne
werden keine ToolTips eingeblendet.
Frage, was muss ich machen um eine eigen ToolTipCtrl für den o.g Toobar
zu erstellen?
Wie kann ich beim CToolTipCtrl::Create() auf mein m_wndToolBar bezugnehmen?
Ciao TinTin
PS:
Falls ich mich unklar ausdrücken sollte, einfach nochmal nachfragen. BITTE!
-
der link nochmal funktionsfähig:
http://www.azuro-muenchen.de/hilfe/schwanger/schwanger.html
Ciao TinTin
EDIT:
da war ich wohl zu langsam
-
-
Vielen Dank!
-
Beachte, dass pData hier auf einen Unicode-String zeigen muss.
Der Faulheit Willen:
Wie bastel ich mir 'nen UNICODE-String???
Ciao TinTin
-
Ok,
folgeden Fragestellung ist zu der Shellfunktion hier wohl noch nicht erörtert worden:
Kann man einen Aufgeklappten Baum vorbelegen? Soll heissen, gibt es eine
Möglichkeit den Dialog zu öffnen, so dass er einen Pfad ausgeklappt hat.
z.B. soll c:\winnt\system32 vorbelegt sein.
Ich meine nicht das Wurzelverzeichnis, dass mit
LPCITEMIDLIST pidlRoot;
aus BROWSEINFO vorbelegtwerdenkann.
Ich hoffe ich habe mich nicht zu kompiziert ausgedrückt.
Ciao TinTin
-
Das das beim Menu machbar ist hab ich schon gesehen, die frage ist aber, wie
komme ich an die Texte, die den Toolbar-Button zugeordnet sind.
ciao TinTin
-
Folgendes Problem:
Ich möchte den Text der in Statuszeile und als Tooltip angezeigt wir, wenn die Maus über
die Toolbar-Buttons geht, ändern und dies zur Laufzeit. Ich weiss, dass die Texte mit
dazugehörigen IDs in der String Table abgelegt sind und diese möchte ändern. Oder einem
Toolbarbutton zur Laufzeit einen Text zuweisen.
Das ganze soll in einem MFC/MDI VS6.0 Projekt passieren.
Kann mir jemand einen Hinweis geben, wie und wo ich das anpacken muss.
ciao TinTin
-
c't hilft
-
-> This programm is designed for the AMD processors only!
und es geht im wesentlichen um PCs mit Windows.
-
Servus Gemeinde,
hat jemand eine Idee, wie ich rausbekommen kann was für ein prozessor auf
einem Board steckt, ohne dass ich die kiste aufmache?
ciao TinTin
-
nur mal geraten ...
probiers mal mit
::DestroyWindow(wnd);
-
wenn ich das richtig sehe, rufst du das in einem dialog auf.(?)
dann brauchst du kein handel. das fenster soll sich ja selber schliessen.
ich kann mich aber auch irren...
TinTin
mit DAO auf einen Access 2000 DB zugreifen
in C++: Compiler, IDEs, APIs
Geschrieben
Mich würde interessieren wie du das gemacht hast. Soweit ich bisher zu wissen
glaubte, kann man mit VC++ 6.0 und DAO (also dem Jet Treiber) nur auf Access97
zugreifen. Mit welcher Entwicklungsumgebung arbeites du denn? Falls es VC++6
sein sollte, würde es mich echt brenned interessieren wie du das gemacht hast.
TinTin