|
Depends how u create the file:
CFile::modeCreate or CFile::modeReadWrite
check CFile::CFile open flags
ull also need CFile::typeBinary so be sure to pipe it
CFile::typeBinary | CFile::modeReadWrite
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Nope, you don't need to specify typeBinary.
You can find this comment in filecore.cpp:
// CFile objects are always binary and CreateFile does not need flag
and this is what MSDN says:
CFile::typeBinary Sets binary mode (used in derived classes only).
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hello,
I would like to programatically drive the Open file dialog of Office 2000/XP. I therefore got the ID of the edit control where one can enter a filename and was looking for the ID of the OK button to send it a BM_CLICK message.
However the control does not show up in Spy++: when I drag the Finder tool then the dialog is hilited and not the button. What kind of control can this be? ActiveX? Will I be able to send it a BM_CLICK message (or anyhting else that will validate the change I made in the edit with a WM_SETTEXT)? How?
Regards,
mynab
|
|
|
|
|
Spy++ sometimes fails to be able to graphically pick certain controls. Look for it in the tree, it'll be there even tho you can pick it off the screen. There's nothing special about the button. In fact, if it's a OK button, then there's a good change the ID is IDOK.
Joel Lucsy (jjlucsy@concentric.net)
|
|
|
|
|
No the control does not appear in the tree either. Even if I spy all the messages and I move the mouse over the button, then the WM_SETCURSOR messages that appear have the HWND of the dialog. If I move the mouse over the Filename RichEdit then the WM_SETCURSOR has a different HWND... Of course I tried GetDlgItem(IDOK) on the dialog but it returns NULL.
Seems I am really stuck!
|
|
|
|
|
Great! I found one working solution... Instead of clicking the OK button (that I can't find) I simulate a VK_RETURN keypress. Works in Office 2000 ; hoping it works in Office XP!
::SendMessage(pEdit->GetSafeHwnd(), WM_KEYDOWN, VK_RETURN, 0x001c0001);
::SendMessage(pEdit->GetSafeHwnd(), WM_CHAR, VK_RETURN, 0x001c0001);
::SendMessage(pEdit->GetSafeHwnd(), WM_KEYUP, VK_RETURN, 0xc01c0001);
mynab
|
|
|
|
|
Hi all,
I have a "small" problem.
I have an SDI with a CFormView. From the CFormView I open a dialog box
using CDialog::Create with the parent as NULL and ShowWindow.
The problem is that when I click on the CFormView the Dialog box doesn't change its Z-order. It remains on top of my SDI, thus hiding part of the SDI.
Mind you, I wish for the Dialog to remain open.
Is there any way to get over this?
Thanks in advance
Alberto Gattegno
Software Engineer
http://www.itgil.com
|
|
|
|
|
Try with this:
...
p_Dialog->Create(IDD_NEURAL_DIALOG, this);
p_Dialog->ModifyStyle(NULL, NULL, SWP_NOACTIVATE);
p_Dialog->ShowWindow(SW_SHOW);
..
|
|
|
|
|
Nope... No good.
It stays the same: The dialog over the SDI. What I need is the dialog under the SDI.
Thanks anyway.
Alberto Gattegno
Software Engineer
http://www.itgil.com
|
|
|
|
|
A little correction: try with with parent NULL:
p_CDialog->Create(ID_MY_DIALOG, NULL);
This works if you call the dialog from some other dialog window and not from main application!
|
|
|
|
|
Yeah I figured that much out.
I think this is Micro$oft's idea of a twilight zone.
Thanks
Alberto Gattegno
Software Engineer
http://www.itgil.com
|
|
|
|
|
I want manually to horizontal scroll CListBox to the right position.
I change the position of the scroll with:
CListBox* p_CListBox;
..
..
sz = pDC->GetTextExtent(str);
dx = sz.dx;
p_CListBox->SetHorizontalExtent(dx);
dx = p_CListBox->GetScrollLimit(SB_HORZ);
p_CListBox->SetScrollPos(SB_HORZ, dx, TRUE);
..
But now I can't actually scroll the view of the CListBox?
I tryed with the:
SendMessage(p_CListBox->GetSafeHwnd(), WM_HSCROLL, MAKEWPARAM(SB_ENDSCROLL, 0),0);
but no success!
(the view is scrolled correct if I click on scroll with the mouse!)
|
|
|
|
|
The code which works is:
SendMessage(p_CListBox->GetSafeHwnd(), WM_HSCROLL, MAKEWPARAM(SB_PAGERIGHT, 0),0);
but I must sent it number? of times to reach the most right HSlider position!
|
|
|
|
|
Hi.
My application was designed for Win2000 only (I use DirectX 7). And I plan to detect attempt to run this on WinNT4 , because there is error message "The procedure entry point DirectDrawCreateEx could not be located in the dynamic link library DDRAW.dll, but this message show up before WinMain call.
Thanks for advise.
|
|
|
|
|
Afaik you can't run DirectX > 3 on Windows NT 4.0. ( Execute-buffers, you've got to love them... )
-=jarl=-
|
|
|
|
|
I know this, but I need only valid error report, maybe like this:
"This program requiedWin98/2000 only"
I need to detect OS version BEFORE the program say "...Entry Point for DirectDrawCreateEx was not found..."
I think that in DDRAW.dll in DllEntryPoint there is call of DirectDrawCreateEx and i have this error message before Step IN to WinMain
|
|
|
|
|
Oh, sorry, I see. You need to load the DLL manually, ( using LoadLibrary ), then.
-=jarl=-
|
|
|
|
|
As you have found, the OS loader is trying to bring in functions / dlls that aren't there.
There are two ways around this. Actually, they are effectively the same, but you do different
things.
1/ Delay load (e.g.) ddraw.dll and catch the DirectDrawCreateEx function failure with an exception
handler, or
2/ Explicitly load the function using LoadLibrary and GetProcAddress.
Iain.
|
|
|
|
|
My problem is a simple one:
I have a dialog box. A simple one, just two lines to fill. If I press enter/return, by default dialog closes as if I have pressed ok.
I would like to capture the keyboard, and make my dialog move onto next items when enter is pressed.
I tried the following, no success:
void CEditDlg::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) <br />
{<br />
AfxMessageBox("KEYUP");<br />
<br />
CDialog::OnKeyUp(nChar, nRepCnt, nFlags);<br />
}<br />
<br />
void CEditDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) <br />
{<br />
AfxMessageBox("CHAR");<br />
<br />
CDialog::OnChar(nChar, nRepCnt, nFlags);<br />
}
------------------------------------------
Experience is the name every one gives to their mistakes. - Oscar Wilde
Experience is one thing you can't get for nothing. - Oscar Wilde
|
|
|
|
|
I forgot to check the dialog template in resource editor
I just changed "Default button" propoerty from OK to "Insert" button.
------------------------------------------
Experience is the name every one gives to their mistakes.
-- Oscar Wilde
Experience is one thing you can't get for nothing.
-- Oscar Wilde
|
|
|
|
|
Under Visual C++ NET the print preview in MFC can be performed only within the MDI child frame and not anymore within the main application frame as before. Does anybody know the way to get the former behavior?
Thanks!
|
|
|
|
|
Does any one know how we can reverse engineer MFC code in rational rose 2000? i've already gone through the help in rational rose and most of the stuff is outdated
|
|
|
|
|
HI,
I have to read the icons for different file types and display them .
Now if i load the common icons from a resource script it wont suffice .
as for a new/different file type it does not work . So it is obvious that
it has to be read from the registry . ( my application uses win32 api)
Any help will be appreciated.
thanks
Suman Ray
|
|
|
|
|
Look up SHGetFileInfo in the Platform SDK.
As I remember, Paul diLascio (MSDN) did a series of C++Q&A articles on all this.
Iain.
|
|
|
|
|
thanks you can do it that way,
discovered another api .
ExractAssociatedIcon(also a shell api ) to do it .
regards
Suman Ray
|
|
|
|