|
I don't generally approve of catching such exceptions (access violations). There are exceptions (not the programming type) – such as in low level code – but in general littering code with “catch alls” just makes debugging hard and postmortem debugging near impossible. A good rule when using exceptions is this: only catch what you expect can be thrown if the program is functioning normally. Breaking this rule can make you wish you never heard of exception handling. For example, if you get an access violation while building a doubly linked list you crash and the debugger or Dr.Watson dump is at the problem point; if the exception is caught the program continues with a corrupted list and if your lucky a crash occurs some time later and you’re left tearing you hair out trying to find the source of the corruption; if you’re unlucky the program doesn’t crash at all but just doesn’t work properly.
Steve
|
|
|
|
|
null pointer or access violation exceptions are not treated as C++ exceptions but as SEH exceptions. You cannot catch SEH exceptions using the try catch block, you need to use a __try, __except block instead.
There is away of unifying the two different exception handling mechanisms. Search for SEH on codeproject and you should find an article that describes how to do this.
|
|
|
|
|
I tried my chance on the lounge - the responses were entertaining but not strictly useful!
Arabic speakers, hebrews, and other right to left writers (and readers), I need your help here!
When I copy the following text from Word
ف3.ي (أي )سنة ولدت؟
And paste it in any application (Notepad, IE, Excel), I get this
3. في )أي (سنة ولدت؟
Note that I have no idea what I am saying here and I hope this is not insulting!
The 3. at the right (hence the start) gets moved to the left (hence the end) and the parenthesis are inverted.
The copy and paste works within Word (except when using the special paste without formatting).
So here is my question: is there a settings in Windows or in a given application for the copy and paste to work correctly? What can I do to copy this properly?
Thanks in advance!
|
|
|
|
|
Hi guys,
I want to add my application to Quick Launch bar. How can I do it using source code in vc++ 6.0.
Please refer some source code or APIs.
Thanking in Advance
Velayudhan
|
|
|
|
|
You have to create a shortcut to your application in the directory <drive>\documents and settings\<user>\Application Data\Microsoft`\Internet Explorer.
To create a shortcut, browse CP articles, you should find it easily.
-- modified at 7:15 Wednesday 21st March, 2007
To find the directory path, use SHGetSpecialFolderPath.
|
|
|
|
|
: velayudhan_raj wrote: I want to add my application to Quick Launch bar. How can I do it using source code in vc++ 6.0.
<br />
%APPDATA%\Microsoft\Internet Explorer\Quick Launch\
is path to quick launch based on user. It automatically takes logged in user application data folder path.
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
whether we have to include any header file for AfxGetWinApp(). since i got AfxGetWinApp() undeclared identifier.
Arise Awake Stop Not Till ur Goal is Reached.
|
|
|
|
|
deeps_cute wrote: since i got AfxGetWinApp() undeclared identifier
yes, because its AfxGetApp .
|
|
|
|
|
deeps_cute wrote: hether we have to include any header file for AfxGetWinApp(). since i got AfxGetWinApp() undeclared identifier.
Arise Awake Stop Not Till ur Goal is Reached.
any why you need AfxGeatApp()??? just a query
|
|
|
|
|
I'm new in VS2005. I've developed 2 simple dialog based
MFC apps: in the first case the user interface (I mean buttons,
checkbosex, ans so on....)is shown in the old Windows style
while in the second case it is shown in the WinXP Style.
I've done nothing to select the UI style (I suppose there are
some different settings in projects but I can't find it).
Can someone explain me what setting allows to choose the UI style ?
Thanks a lot.
|
|
|
|
|
Are these MFC apps? Is the one with the new XP style a UNICODE app? There is a "quirk" in the included manifest (stdafx.h) in VS2005 where the generated app uses the old-style visual if the app is not UNICODE. If the app is UNICODE, you get the new-style visual. There is an #ifdef around the manifest in the VS-generated stdafx.h such that the manifest is only included for UNICODE apps.
Judy
|
|
|
|
|
Hi everyone!
I'm finding API's function or MFC class for working with FAT(File Alocation Table): Read infomation from FAT, work with directories and files (copy, read, write, delete...).
Can somebody show me ?
Thank you at all.
Nothing Is Impossible !
|
|
|
|
|
There is plenty of information about the FAT file system on the Internet, just Google for it.
You can use CreateFile() to open a volume (logical disk), and then use SeekFile/ReadFile/WriteFile to read and write sectors on the volume.
But you do know that Win32 natively does support the FAT file system? If you just want to use a FAT formatted disk for the usual file handling functions, just do it. You don't have to care about if the disk/volume is formatted for NTFS or FAT, it just works.
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
Hello everyone,
I have a bunch of dynamically created static controls on my MFC dialog.
I would like the user to be able to click on those. So how do I map the notification message from the control to a handler function?
I have no problem mapping the message from a static control created at designtime:
<br />
BEGIN_MESSAGE_MAP(CSomeprojectDlg, CDialog)<br />
...<br />
ON_STN_CLICKED(IDC_STATIC_TEST, OnStnClickedStatic)<br />
...<br />
END_MESSAGE_MAP()<br />
<br />
BOOL CSomeprojectDlg::OnInitDialog()<br />
{<br />
...<br />
GetDlgItem(IDC_STATIC_TEST)->ModifyStyle(0, SS_NOTIFY);<br />
...<br />
}<br />
<br />
void CSomeprojectDlg::OnStnClickedStaticTest()<br />
{<br />
MessageBox("Hello");<br />
}<br />
My code when creating the controls programatically:
<br />
BOOL CSomeprojectDlg::OnInitDialog()<br />
{<br />
...<br />
#define FirstID 2000<br />
<br />
for(i=1; i<=10; i++)<br />
{<br />
pWnd= new CWnd;<br />
pWnd->Create(_T("STATIC"), "SomeText", WS_CHILD | WS_VISIBLE | SS_NOTIFY, CRect(x_pos1, y_pos1, x_pos2, y_pos2), AfxGetMainWnd(), FirstID + i);<br />
}<br />
...<br />
}<br />
<br />
Thanks
-- modified at 5:22 Wednesday 21st March, 2007
|
|
|
|
|
Futterama wrote: GetDlgItem(IDC_STATIC_TEST)->ModifyStyle(0, SS_NOTIFY);
This step is unnecessary here, as you have already mentioned SS_NOTIFY style while creating control.
Futterama wrote: pWnd->Create(_T("STATIC"), "SomeText", WS_CHILD | WS_VISIBLE | SS_NOTIFY, CRect(x_pos1, y_pos1, x_pos2, y_pos2), AfxGetMainWnd(), FirstID + i);
Set this dilaog as parent of the static text. Modify your code to,
pWnd= new CWnd;
pWnd->Create(_T("STATIC"), "SomeText", WS_CHILD | WS_VISIBLE | SS_NOTIFY, CRect(x_pos1, y_pos1, x_pos2, y_pos2), m_hWnd, FirstID + i);
If one of FirstID + i is equal to IDC_STATIC_TEST , handler OnStnClickedStaticTest will be called.
|
|
|
|
|
prasad_som wrote: Futterama wrote:
GetDlgItem(IDC_STATIC_TEST)->ModifyStyle(0, SS_NOTIFY);
This step is unnecessary here, as you have already mentioned SS_NOTIFY style while creating control.
This line is when I create the control with the Ressource view and toolbox in VS, not when creating the controls programatically.
prasad_som wrote: If one of FirstID + i is equal to IDC_STATIC_TEST , handler OnStnClickedStaticTest will be called.
True, but will I then need one ON_STN_CLICKED(ID, OnStnClickedStaticTest) for each control I create? That's a lot of work and the easy part of creating the static controls programatically is kind of gone.
I was thinking more of a general handler for all the controls, that is called whenever the app receives the notification and can check to see which control the user clicked.
Is that possible, if yes, how?
|
|
|
|
|
Futterama wrote: True, but will I then need one ON_STN_CLICKED(ID, OnStnClickedStaticTest) for each control I create? That's a lot of work and the easy part of creating the static controls programatically is kind of gone.
Use ON_CONTROL_RANGE .
Your code would be modified like this,
BEGIN_MESSAGE_MAP(CSomeprojectDlg, CDialog)
...
ON_CONTROL_RANGE(STN_CLICKED,ID_STATIC_FIRST,IDC_STATIC_LAST,OnStnClickedStaticTest)
...
END_MESSAGE_MAP()
void CSomeprojectDlg::OnStnClickedStaticTest(UINT nIdOfControl)
{
MessageBox("Hello");
}
|
|
|
|
|
prasad_som wrote: Use ON_CONTROL_RANGE.
Your code would be modified like this,
BEGIN_MESSAGE_MAP(CSomeprojectDlg, CDialog)
...
ON_CONTROL_RANGE(STN_CLICKED,ID_STATIC_FIRST,IDC_STATIC_LAST,OnStnClickedStaticTest)
...
END_MESSAGE_MAP()
void CSomeprojectDlg::OnStnClickedStaticTest(UINT nIdOfControl)
{
//check ids if needed
MessageBox("Hello");
}
Exactly what I needed, thanks!
|
|
|
|
|
Hi,
I have an MFC doc/view application and I wish to exit gracefully if the view does not initialise correctly. At the moment I return -1 from OnCreate() as per the documentation but this gives the "Failed to create an empty document" message which is hardly helpful to the user.
If I post a WM_CLOSE message I still get the same problem because it doesnt get processed until the view has completed its initialisation.
Any suggestions?
Tony
|
|
|
|
|
Use PostQuitMessage(0); in case view initializatin is failed.
i.e
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
if (bFailed)
{
PostQuitMessage(0);
}
return 0;
}
|
|
|
|
|
Great thanks - that does the trick.
Tony
|
|
|
|
|
Hi all:
I've implemented the MSI package rendering through progress bar using MsiSetExternalUI. But it seems the installation process was divided into several rounds, this way the progress will reset several times, I was wondering is it possible to render it as a single coherent progress?
From 0 - 100%
Thanks
|
|
|
|
|
hi,
The error message that I got in my project is "fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory". But this stdafx.h file is included in the project.What can cause to occur of this error.
thanks
|
|
|
|
|
Try Rebuilding All the project.
Please refer this[^]
Regards,
Paresh.
|
|
|
|
|
Still I cannot solve the problem.Is there any other solutıon.
|
|
|
|