|
Will this work?
void CCustomButtonDlg::OnButtonFace()
{
CColorDialog dlg;
dlg.m_cc.Flags |= CC_FULLOPEN | CC_RGBINIT ;
dlg.m_cc.rgbResult = RGB( 255, 0, 0 );
dlg.DoModal();
HBRUSH hbr;
if (GetDlgCtrlID() == IDC_CUSTOM_BUTTON)
{
CDC *cDC;
cDC = m_CustomButton.GetDC();
cDC->SetBkColor(dlg.GetColor());
hbr = m_brush;
}
UpdateData();
}
|
|
|
|
|
I don't know (what -the fresh hell - is CCustomButtonDlg ?): try it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
ratprita wrote: Will this work?
No, but responding to the WM_CTLCOLORBTN message will.
ratprita wrote: UpdateData();
Seriously?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Hi there,
I got the strangest problem. I want to start an executable with ShellExecute(). Which usually works fine, but ...
(this is the code)
[edit]
char buf[512]
size = GetCurrentDirectoryA( 512, buf );
[/edit]
char callString[1024];
sprintf_s( callString, "%s\\%s", buf, file.c_str() );
char buf[1024];
sprintf_s( buf, "c:\\Users\\zwatschek\\work\\svn\\incubation\\ttsServer\\Data\\ttsWatchdog.exe" );
char id[32];
sprintf_s( id, "%d", pid );
long res=long(ShellExecute(0, "open", callString, id, 0, SW_SHOWNORMAL));
... with version 2 things work fine, with version 1 I get ERROR_FILE_NOT_FOUND.
callString = c:\Users\zwatschek\work\svn\incubation\ttsServer\Data\ttsWatchdog.exe
buf = c:\Users\zwatschek\work\svn\incubation\ttsServer\Data\ttsWatchdog.exe
(I copied those strings right out from the variable watch)
Does anyone have an idea on this?
Souldrift
modified on Monday, October 5, 2009 5:00 AM
|
|
|
|
|
There's something wrong in the posted snippet:
Souldrift wrote: // version 1
char callString[1024];
sprintf_s( callString, "%s\\%s", buf, file.c_str() );
Here you're using a uninitialised buf variable (as far as I can tell from the posted code...).
Souldrift wrote: har buf[1024];
sprintf_s( buf, "c:\\Users\\zwatschek\\work\\svn\\incubation\\ttsServer\\Data\\ttsWatchdog.exe" );
char id[32];
sprintf_s( id, "%d", pid );
long res=long(ShellExecute(0, "open", callString, id, 0, SW_SHOWNORMAL));
here you're copying (with a wrong call to sprintf_s - missing len parameter-) the file name to the buf variable, but, afterwards, you're not using buf in ShellExecute .
Please check through the posted code.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I edited the code block. buf was initialized, of course, further above.
In ShellExecute() I tried 'callString' and 'buf' as parameter. But only 'buf' worked.
'buf' is in the example NOT in the ShellExecute(), since I tried last with 'callString'. hm ... I post the code differently ...
char buf[512]
size = GetCurrentDirectoryA( 512, buf );
char id[32];
sprintf_s( id, "%d", pid );
char callString[1024];
sprintf_s( callString, "%s\\%s", buf, file.c_str() );
long res=long(ShellExecute(0, "open", callString, id, 0, SW_SHOWNORMAL));
char callString2[1024];
sprintf_s( callString2, "c:\\Users\\zwatschek\\work\\svn\\incubation\\ttsServer\\Data\\ttsWatchdog.exe" );
res=long(ShellExecute(0, "open", callString2, id, 0, SW_SHOWNORMAL));
And still, the contents of callString and callString2 are the same. Version 2 works, version 1 not.
I´ll look into the len parameter of sprintf_s. But I don´t think that´s it.
Thanks.
Souldrift
modified on Monday, October 5, 2009 5:26 AM
|
|
|
|
|
I made a test. Both version 1 and version 2 work fine on my system.
Of course I had to provide a value for the file std::str variable (and I used different path and executable).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
God, how I hate programming
Thanks again ...
|
|
|
|
|
I found it. What a bugger.
I got my file name from an absolute path like this
string path = wdPath.substr( 0, index+1 );
string file = wdPath.substr( index+1 );
And though 'file' was displayed correctly in the watch, it seems to have contained some invalid sign. Cause like this ...
string path = wdPath.substr( 0, index+1 );
string file = wdPath.substr( index+1, wdPath.size()-index-2 );
... it works.
Cheers
Souldrift
|
|
|
|
|
Hi all,
in SHBrowseForFolder Function when window open its title is "Browse for folder".
please tell me can i change it.
thanks in advance.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
The SHBrowseForFolder [^] takes in a pointer to a BROWSERINFO[^] structure.
You can assign the lpszTitle of BROWSERINFO and pass the BROWSERINFO to SHBrowseForFolder .
|
|
|
|
|
In BROWSERINFO structur the parameter discription like this
"lpszTitle
Pointer to a null-terminated string that is displayed above the tree view control in the dialog box. This string can be used to specify instructions to the user.
"
this parameter not change the main window title.
please help me.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
LPMALLOC pMalloc;
LPITEMIDLIST pidl;
TCHAR szPath [MAX_PATH];
BROWSEINFO bi = { GetSafeHwnd(), NULL, szPath,
_T("Test title for browse dialog"),
BIF_VALIDATE|BIF_UAHINT|BIF_NEWDIALOGSTYLE|BIF_NONEWFOLDERBUTTON|BIF_RETURNONLYFSDIRS, NULL, NULL };
pidl = SHBrowseForFolder ( &bi );
if ( NULL != pidl )
{
SHGetMalloc ( &pMalloc );
pMalloc->Free(pidl);
pMalloc->Release();
}
here the window title is remain same "Browse for folder",and "Test title for browse dialog" comes above on dir tree.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
You may use the lpfn member of the struct, for instance
int CALLBACK MyCallback(
HWND hwnd,
UINT uMsg,
LPARAM lParam,
LPARAM lpData
)
{
if (uMsg == BFFM_INITIALIZED)
SetWindowText(hwnd, _T("Hi folks"));
return 0;
}
and then
BROWSEINFO bi = {
GetSafeHwnd(),
NULL,
szPath,
_T("Test title for browse dialog"),
BIF_VALIDATE|BIF_UAHINT|BIF_NEWDIALOGSTYLE|BIF_NONEWFOLDERBUTTON|BIF_RETURNONLYFSDIRS,
MyCallback,
NULL
};
pidl = SHBrowseForFolder ( &bi );
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
As you've found out, the lpszTitle member of the BROWSEINFO structure does what it says - changes the text above the tree control, rather than the title.
I'd agree that the variabke name is a bit misleading, but the help text tells the truth.
Maybe make a browsecallbackproc?
The docs say that the first parameter of this callback function is the window of the browese dialog. Could yopu call SetWindowText from there? It passes a BFFM_INITIALIZED message to the proc, so you could change the text very soon.
Good luck,
Iain.
I have now moved to Sweden for love (awwww).
If you're in Scandinavia and want an MVP on the payroll (or happy with a remote worker), or need contract work done, give me a job! http://cv.imcsoft.co.uk/[ ^]
|
|
|
|
|
Thank u very much its really helps me.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
one more question for browse for folder the ok button enable on my computer type location i want this type of location the ok button should be disable.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
1) You can set the ulFlags member of the BROWSEINFO structure you pass to SHBrowseForFolder to specify that (for example) you only want file-system directories.
2) You can implement functionality in the BrowseCallbackProc[^] to enable/disable the OK button.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hi I made the following program for depth first search but I am having wrong path. Can anyone catch or tell me what I am doing wrong here. I dont know much how to use the debugger in turbo c professional.
Thanks and regards, Mike.
#include <stdio.h>
#include <conio.h>
#define MAX 6 // Node/Vertex count
int adj[MAX][MAX]={ // Adjacency Matrix 2x2
{0,1,1,1,0,0},
{1,0,0,0,1,1},
{1,0,0,0,0,0},
{1,0,0,0,0,0},
{0,1,0,0,0,0},
{0,1,1,0,0,0}
};
int visited[MAX]; // Visited array
void bfs(int goal); // bfs function
int main ()
{
int g=5; //set Goal node
clrscr();
printf("The nodes order is ");
bfs(g);
return 0;
}
void bfs(int goal)
{
int queue[MAX];
int i,front,rear,root;
front=rear=0;
for (i=1;i<=MAX;i++)
visited[i]=0;
visited[goal]=1;
queue[rear++]=goal;
while(front!=rear)
{
root=queue[front];
for(i=1;i<=MAX;i++)
{
if (adj[root][i] && !visited[i])
{
visited[i]=1;
queue[rear++]=i;
printf("%d",i);
}
front++;
}
}
}
|
|
|
|
|
Is the queue circular , if so you need to check for ends and rotate the queue's front/rear back to 0.
Refer here Circular Queue[^]
|
|
|
|
|
No, it is not circular. It is just a FIFO queue.
|
|
|
|
|
For loops be for(i=0 ; i<MAX ; ++i)
front++; should be outside the for loop.
-Saurabh
|
|
|
|
|
Output is wrong if I take it out of the for loop 
|
|
|
|
|
Sry im not good at algorithms, when i ran your code in vs there was an error in
the 3rd line of the code below
root=queue[front];
for(i=1;i<=MAX;i++)
{
if (adj[root][i] && !visited[i])
ie : adj[root][i] , the root value was garbage,
and root=queue[front]; here front was 6 and queue[6] was uninitialized
|
|
|
|
|
thanks for the reply. I am using the turbo c 3.0 IDE, I never knew it could run in visual studio.
I had a hard time debugging this inside the turbo c ide so I posted it here.
Mike.
|
|
|
|
|