|
You might want to see if SetWindowPos() does what you want.
Artificial intelligence is no match for natural
stupidity.
|
|
|
|
|
I want to customize a merged menu when in-place editing, but wm-initmenupopup msg can not be handled by CframeWnd handler(for example, the menu merged by office Word in my application), why?
is there any way to catch these msg or to customize the merged menu?
help, thanks.
|
|
|
|
|
I've two Dialogs (dialogA, dialogB), Dialog A has an edit box which I need to write to. In DialogB I want to write to the edit box of DialogA.
I want to use SetDlgItemText, however I was told I need to get a pointer to the first Dialog, but I don't know how.
Suggestions much appreciated
Kind Regards
Kevin
|
|
|
|
|
If dialog A is the parent of dialog B (which it sounds like it should be), you can simply call GetParent() anywhere from within dialog B.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Any idea how to create a hyperlink on a dialog so that when I click on the link it would open a document. I know it can be done using a button but would prefer if someone would show me how to implement a hyperlink
Kind Regards
Caoimh
|
|
|
|
|
You can find several hyperlink controls here[^]. Set the target to "file://myFile.txt ".
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Set Notify and Owner Draw style to the button (do not use Static control, because Static cannot be owner-drawn)
In draw routine, you should draw a blue underlined text
Handle a BN_CLICKED of the control:
ShellExecute(NULL, _T("open"), _T("http://www.mff.cuni.cz"), NULL, NULL,<br />
SW_SHOWNORMAL);
Enjoy!
Robert-Antonio
"Science is a differerntial equation.
Religion is a boundary condition."
|
|
|
|
|
Do I need to synchronize simple data types (int, DWORD, bool etc.), when I write to the (static) variable in one thread and read it in another. Does windows ensure that it will not switch to another thread during writing of one value? What do I have to remark.
Thanks for any answer.
Regards Konrad
|
|
|
|
|
different thread will not write or read or write/read the values at the same time... but a thread can set a bool value to false just after you have read it as true.
So that could cause a problem, Its better to have critical sections for these static variables.
P.R.A.K.A.S.H
|
|
|
|
|
But I think i need to declare the static variable with the keyword volatile, or is this not correct?
Konrad
|
|
|
|
|
yeah it should be volatile.
Jo hoga, Kuddhaye manjur hoga.
|
|
|
|
|
Look at the InterlockedExchange() and related calls.
(on a 80x86 based system, a bool or char will be read/written in an atomic operation, though I don't advise it outside of very narrow circumstances.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Thank you very much, that helps. But with InterlockExchange I must write a new value to a variable. What if I just want to read variable and ensure that this is atomic?
Do the variable have to be declared as volatile.
Sorry but the MSDN library is very short concerning this issue.
Konrad
|
|
|
|
|
If you only read the variable, you don't need to synchronize anything
If you simultaneously read and write to the variable, only the writing operation should be interlocked.
Robert-Antonio
"Life is very hard, when you apply E-R model to it."
|
|
|
|
|
Thanks for your answer, but in the MSDN Library I found the following sentence:
Simple reads and writes to properly-aligned 32-bit variables are atomic.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/interlocked_variable_access.asp
What about other variables like char (8bit)? Isn't it possible, that during the read process another thread writes to the variable with InterlockedExchange. After this the read thread is reading the second part of the variable. It gets corrupted, because it wasn't an atomic read. What about other variables like 8, 16 bit. Are reads always atomic?
And do I need volatile for these variables if I write to them only via InterlockedExchange.
Thanks for any answer
Konrad
|
|
|
|
|
You do not need to use volatile if using InterlockedExchange.
Reads/writes to/from 8 bit values are atomic on x86 platforms.
Do note that if you must guarantee a specific sequence of reading and writing, you'll need to use more complex synchronization methods.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
I think you're right. 8- and 16-bit writing should be atomic too. The operation is made by only one assembler instruction MOV.
Volatile declaration is necessary, because it tells to compiler, that its value may be changed every time by another thread. For example, if you're referring to the variable multiple times in one thread, the compiler should optimize it by storing its value in register. If another thread changes the value, you have a different value in memory and register and the program could not behave correctly. Volatile declaration ensures, that the value of variable is always taken from the memory.
Robert-Antonio
"Czech Railways discovered, that in case of disaster the most damaged wagons
were the first and the last. So they decided to create trains without them."
|
|
|
|
|
Hi,
I want to open & display a file(ex: .C) with Line Number to be displayed infront of each line. (Ex: Like C Debugger have)
Plz. send me code if anybody written...
irshad_b@indiatimes.com
Thanks in Advance,
Regards,
Irshad
|
|
|
|
|
I know how to do it, but i am not going to write a code for you.but hey how lazy can you get?
P.R.A.K.A.S.H
|
|
|
|
|
Assuming you have an edit control with the ES_MULTILINE style, you can do something like:
CStdioFile file(_T("c:\\boot.ini"), CFile::modeRead);
CString strFileLine,
strEditLine;
int nLine = 1;
while (file.ReadString(strFileLine) != FALSE)
{
strEditLine.Format(_T("%d %s\r\n"), nLine++, (LPCTSTR) strFileLine);
m_edit.ReplaceSel(strEditLine);
}
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Thanks for ur reply..
Sorry i am asking silly questions..as I am new to MFC...Actually i want to
1. open C source file with standard coloring of keywords of C langauge ..&
2. a new view window which display line number & have capabilty to set break-points ..(like M VC++ editor have)
3. a shared vertical scroll-bar between these windows.
I am using RichEditView class for other operations like get line number on double-clk,etc..
Regards
Irshad
|
|
|
|
|
what is the best way to debug a service in vs 6.0..
|
|
|
|
|
Is the service writen by you??
If yes set the breakpoints and press f5
P.R.A.K.A.S.H
|
|
|
|
|
There are a few ways really. Normal Breakpoint F5 debugging is tricky as im sure you have found out due to the way the SCM starts the service.
I usually write my app as a normal app then turn it into a service when its done, but if thats not possiable you can use hardcoded breakpoints
Put the line "_asm int 3" into your service's code and you find when you run the service you get a dialog asking you to debug the app. Press cancle and you will be taken into the debugger
|
|
|
|
|
hello,
I want to prevent user shutdown.
I am catching the WM_QUERYENDSESSION message and returning a 1, which occording to the
inline help should stop the shutdown process.
It works on occassions but crashes on others, it seems to be completely inconsistent too...I know i am cathing the WM_QUERYENDSESSION so its not anything else...
Is there something else I need to do???
Thanks in advance
|
|
|
|