|
Sylvester12 wrote:
...but I am getting the "Type Mismatch" error.
can anyone tell me how to use MSFlexGrid and CRecordset together in an app.
Not without seeing a relevant code snippet.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi,
Here is the piece of code thats cauing the error:
m_DataSource is an object of CRecordset which contains records from a database table.
m_Grid.SetDataSource(NULL);
m_Grid.SetDataSource( (LPDISPATCH) m_DataSource);
m_Grid.Refresh();
UpdateData(FALSE);
|
|
|
|
|
Ok, so which of these four statements causes the error? I've never used the MSFlexGrid object but that first statement seems unnecessary. The UpdateData() call is suspect.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
my question not about VC++, it's about turbo C++ (under dos)
i need to know where i can find the number of general 8086 software interrupt interfaces .
i want to use it with this function:
int86(0x??,??,??)
last but not lest i am sorry because i make this question in the forum of VC++ because you don't have TC++ forum.
|
|
|
|
|
Wow, it's been over 14 years since I last used Turbo C. It was a fun compiler and I learned gobs from it. My only two suggestions would be to Google for int86() and note the interrupts that are being called. I also had a book called "Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures" by Andrew Schulman. Good luck!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
IIRC (and it's been a long time) there were a number of reserved interrupts, and a few user interrupts available. Executable files were loaded at address 0x0100; addresses below that were allocated to interrupt handlers, 4 bytes at a time. Int0 got 0x000, INT1 had 0x0010, etc. It was common practice to replace the JMP (0x3c) operands to add new functions to DOS, or to implement user functions. One possible resource for you is Ralf Brown's Interrupt List[^].
"If it's Snowbird season, why can't we shoot them?" - Overheard in a bar in Bullhead City
|
|
|
|
|
Ive been working on a program using Microsoft Visual C++ 6.0 (with MFC app)... I am now queued at the Tree control part... Using the Control Palette it opens a control area and all tutorials i see are about AddString... I was wondering how i could get it to view the files in its folder, list all txt files in its folder, is it possible?
Just a Human Trying to Live in a Computers World.
|
|
|
|
|
|
Hello!
How can I make my window lose the focus? The window with that the user worked before should get the focus back (so not just any other random top-level window).
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Set the focus to another window (someWnd.SetFocus())
SkyWalker
|
|
|
|
|
I don't know the handle of the window that had the focus before.
Think of this: the user works in notepad. Now he switches to my app and does something. My app must lose the focus and he must be in notepad again.
Idea?
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
GetFocus() return a pointer to the window having the focus.
SkyWalker
|
|
|
|
|
Could you be more explicit?
If the user wants to go back to notepad, he clicks that window, so that window gets the focus.
I'm afraid I do not understand what you need
SkyWalker
|
|
|
|
|
Maybe you know my project KeePass Password Safe. The user has the option to auto-type some string, i.e. the KeePass window loses the focus and the window that had the focus before will receive simulated key-presses.
Now I face the problem of losing the focus without minimizing. If I just say ShowWindow(SW_MINIMIZE) the window automatically loses the focus and the keys are typed into the right window. But now I need a method to lose the focus, without minimizing.
Idea?
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
1. To simply lose the focus, you call SetFocus(NULL);
2. MSDN says that:
"Windows created in different threads typically process input independently of each other. That is, they have their own input states (focus, active, capture windows, key state, queue status, and so on), and they are not synchronized with the input processing of other threads. By using the AttachThreadInput function, a thread can attach its input processing to another thread. This also allows threads to share their input states, so they can call the SetFocus function to set the keyboard focus to a window of a different thread."
Maybe one of these help?
SkyWalker
|
|
|
|
|
> Maybe one of these help?
Unfortunately not
1. looks good but doesn't work. The previously used window doesn't get the focus.
2. I couldn't get the AttachThreadInput function to work... It doesn't seem to do anything...
Thanks and best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Could SetWindowPos be what you are looking for? You can use that to push your window to the back of all others.. Just an idea.
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
When I do
SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE); it gets nicely into the background, but doesn't lose the focus...
More ideas?
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
The WM_ACTIVATEAPP message gives you the thread ID of the app that had or is getting the focus from your app. You might be able to use EnumThreadWindows to find the window associated with the thread. When you want to set focus back to that window use SetForegroundWindow.
Hope this helps, as it is all quessing. Never done this myself.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
Sounds interesting, I'll have a look at it! Thank you!
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Mircea Puiu wrote:
I'm afraid I do not understand what you need
Same here.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
Hi everybody , i want to write a application similar to "Program Control" that firewalls have, when a firewall is asking you to allow or deny acces to given program to internet , when this program tries to connect to internet.
Can anybody give me link to any web site or any article where i can find information regarding this.
Thanks in advance
m0n0
|
|
|
|
|
|
Hi all,
Who had worked on Pocket PC please help me!
I'm using CPtrArray to store a array of pointer(as below, it is pointer of CData class).
+ Firstly, I allocate memory for objects (using operator "new") , and add them to CPtrArray.
+ Then, I get these pointers and using "delete" operator to free allocated memory.
However, even though I freed all allocated memory, but for the frist times of runing this source on Pocket PC, memory always increase.
Of course, for next times of runing, memory is not changed.
(I monitor memory by go to "Setting\Memory")
Here is my source code:
class CData
{
public:
CData();
virtual ~CData();
private:
wstring m_strFullName;
wstring m_strNativePlace;
wstring m_strDescription;
int m_nAge;
int m_nHeight;
int m_nWeight;
bool m_bSex.
}
CPtrArray lstData;
CData * pData;
int nSize = 10000;
for (int i = 0; i < nSize; ++i)
{
lstData.Add(new CData());
}
for (i = 0; i < nSize; ++i)
{
pData = (CData*)lstData.GetAt(i);
delete pData;//free memory
}
lstData.RemoveAll();
lstData.FreeExtra();
Many thanks for your help.
|
|
|
|