|
Hi, the following code works fine (AFAIK) in release builds, however, it gives annoying warning in debug builds... I am passing a CPropertySheet* between an application and a DLL function loaded using GetProcAddress. In the debug version, I get several ASSERTION failures informing me that I should pass the window by HWND rather than CWnd*. I have tried to do this, but cannot seem to get it to work. Here is the code that causes the ASSERTIONS:
calling function: (checks removed for brevity)
extern CPropertySheet* pP;
extern HINSTANCE hInst;
typedef void (*foo)(CPropertySheet*);
foo f = (foo)GetProcAddress(hInst,"Foo");
foo(pP);
dll:
extern "C" _declspec(dllexport) void Foo(CPropertySheet* pP)
{
ASSERTIONS occur here, if I use pP, specifically, I am using the dll to add CPropertyPage derived objects
...
}
I have tried to pass an HWND, create a new CPropertySheet* and attach it, but this doesn't seem to work, and if I do things like add pages to this CPropertySheet, they don't seem to have any effect in the calling app.
Here's what I've tried:
calling:
typedef void (*foo)(HWND);
foo(pP->m_hWnd);
dll:
CPropertySheet* pNew = new CPropertySheet;
pNew->Attach(hWnd);
// now try to use pNew, but it doesn't have any effect in the main app
Could somebody show me the 2 or 3 lines of code to pass a CWnd* properly between an app and dll?
Sincerely,
Joe Hastings
Mach5 Enterprises, LLC. http://www.mach5.com/
"Web Intelligence for the New Economy"
|
|
|
|
|
I don't know how to write 2D fullscreen applications (games) in Visual C++ in MFC. Can you help me ? I will very happy, if you send me some informations or files with source code about fullscreen programming.
|
|
|
|
|
You want to use DirectX, you can set up a DirectDraw surface to take over the whole screen, plus you get back buffers, etc. Download the SDK from Microsoft and have a look at the samples that come with it - that's how I've been teaching myself and I got a 2D game up and running within a week, so it can't be too hard.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Hi
Does anybody know the algorithm or function to obtain the "3D Object" color.
For instance on Windows 2000 with the 'Personalized Menus' feature enabled, I need to know what the light color is on the menu. Once I have this algorithm I will release my class to enable MFC Applications to have personalized menus with bitmaps
Regards
Norm
|
|
|
|
|
GetSysColor( COLOR_3DFACE );
--Mike--
http://home.inreach.com/mdunn/
"That probably would've sounded more commanding if I wasn't wearing my yummy sushi pajamas."
--Buffy
|
|
|
|
|
Мне нужен контрол в котором пользователь не мог бы менять размер колонок.
|
|
|
|
|
Help, People!!!
We have: A certain bitmap (in the application resources or in a CBitmap - not important) and a certain device context (CClientDC for example).
We need: To draw this bitmap in this context in the eXcluding OR mode (it's required for dragging elements).
Well, I've found one way. I create a campartible DC in memory by CDC::CreateCompartibleDC, draw the bitmap in it, and then copy the image into my target context by using CDC::BitBlt(...,SRCINVERT).
BUT (!) the image we obtain this way is transformed into black-and-white.
Who knows how to draw a full-color XOR bitmap please answer.
|
|
|
|
|
Try setting the SetTextColor and SetBkColor on the target DC before executing BitBlt, I've spent a good hour trying to get BitBlt(...SRCAND) to work, only to find I forgot to set SetTextColor and SetBkColor. Theres not much documentation detailling the raster operations.
Good Luck
Norm
|
|
|
|
|
Can anyone tell me how much work or time is involved in implementing a Network Provider DLL for a very simple network protocol?
The Microsoft documentation is fine but a little thin on examples.
Any help would be greatly appreciated. I am WAY out of my element here.
thanks
|
|
|
|
|
Can anyone tell me how much work or time is involved in implementing a Network Provider DLL for a very simple network protocol?
The Microsoft documentation is fine but a little thin on examples.
Any help would be greatly appreciated. I am WAY out of my element here.
thanks
|
|
|
|
|
Can anyone tell me how much work or time is involved in implementing a Network Provider DLL for a very simple network protocol?
The Microsoft documentation is fine but a little thin on examples.
Any help would be greatly appreciated. I am WAY out of my element here.
thanks
|
|
|
|
|
Anybody knows, how I can retrieve messages from other processes.
Thanks in advance,
Thomas
|
|
|
|
|
I have a database with 10000 records that populates a CListCtrl. It takes roughly 10 - 13 seconds to load. Is there a more efficient way of populating a CListCtrl?
|
|
|
|
|
Try making it a virtual list control. This means you need to respond to the LVN_GETDISPINFO message. This message is sent to your control when it needs to be repainted. A call to SetItemCountEx() tells the control how many items should be in the list. I usually load up 100 or so items at a time so that the control does not allocate anything until the user actually pages down. This is great for incremental searching, but it does mess up the scroll bar (when the user pages down enough another block of 100 items is SetItemCountEx()'d, so the scroll bar recalculates its relative position). In the OnGetDispInfoXXX callback you need to use CRecordset::SetAbsolutePosition(nListIndex) to retrieve the correct record.
Here's a snippet (LIST_BLOCK_SIZE = 100)
//==============================================================================
void CLogReviewDlg::OnGetdispinfoListLog(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem = &(pDispInfo)->item;
int nIndex = pItem->iItem + 1;
if (pItem->mask & LVIF_TEXT && nIndex <= m_nRecCount)
{
if (nIndex >= m_nListCount && m_nListCount != m_nRecCount)
{
m_nListCount += LIST_BLOCK_SIZE;
if (m_nListCount > m_nRecCount)
{
m_nListCount = m_nRecCount;
}
m_ctlListLog.SetItemCountEx(m_nListCount, LVSICF_NOINVALIDATEALL | LVSICF_NOSCROLL);
}
try
{
m_rsLogData.SetAbsolutePosition(nIndex);
}
catch (CDBException* pEx)
{
TRACE("Database exception %s", pEx->m_strError);
pEx->Delete();
}
switch (pItem->iSubItem)
{
case COLUMN_CATEGORY:
lstrcpy(pItem->pszText, m_rsLogData.m_Category);
break;
case COLUMN_PROCESS:
lstrcpy(pItem->pszText, m_rsLogData.m_Process);
break;
case COLUMN_INSTANCE:
wsprintf(pItem->pszText, "%d", m_rsLogData.m_Instance);
break;
case COLUMN_TIMESTAMP:
lstrcpy(pItem->pszText, m_rsLogData.m_DateTime.Format("%m/%d/%Y %H:%M:%S"));
break;
case COLUMN_MILLISEC:
wsprintf(pItem->pszText, "%d", m_rsLogData.m_Milliseconds);
break;
case COLUMN_FUNCTION:
lstrcpy(pItem->pszText, m_rsLogData.m_Function);
break;
case COLUMN_LOG_TEXT:
lstrcpy(pItem->pszText, m_rsLogData.m_LogText);
break;
default:
TRACE("Product List control column out of range %d", pItem->iSubItem);
break;
}
}
*pResult = 0;
}
Hope it helps.
|
|
|
|
|
Can u give me a little more detail on how to get it up and running.
I is hard to understand ur code.
Thank you
|
|
|
|
|
If you don't want to go with the 'virtual list' method, you can speed up
your existing list with:-
list->SetRedraw(FALSE);
... do your list population algorithm...
list->SetRedraw(TRUE);
or you could do
list->LockWindowUpdate();
... do your list population algorithm...
list->UnlockWindowUpdate();
list->Invalidate(FALSE); // not strictly necessary, but I have seen some controls
// fail to redraw correctly after this, so this will do it, use FALSE so that it
// just redraws without an erase first
Stephen Kellett
|
|
|
|
|
Hi,
We are doing a project to design a voice chat software for LAN. We are trying to do it in Visual C++. So far we have not been able to get a good start? How do we do it ? Are there any command in MFC to send sound via LAN ? If yes what are they ? Laslty would it be better to do this project in Java or Visual Basic ? Please help, Thanks.
|
|
|
|
|
hi,
Do some research on VoIP. There are some libraries available do to synchronisation and checking on lost packets. For the capturing you can use Direct Sound (there are a lot of examples with the DirectX SDK). I find the one for full-duplex the most appropriate for what you want to do.
As compression you can use windows Codecs. Real eazy, you just have to get aquainted with the way it works. I used the GSM 6.10 Codec to send over modem-internet links (only 1.6KB).
Then send and receive everything the MFC-way using async sockets.
Regards,
WimB
|
|
|
|
|
hi
where can i find the DirectX SDK. i am working on the project of voice chat over LAN. plz help me because i am not getting any help from anywhere .
WildChaser!
U r providing the best services for the students and the the people who seek help
Thanks
|
|
|
|
|
ftp.microsoft.com or http://msdn.microsoft.com/downloads/default.asp
Christian
#include "std_disclaimer.h"
People who love sausage and respect the law should never watch either one being made.
The things that come to those who wait are usually the things left by those who got there first.
|
|
|
|
|
Hi,
We are doing a project to design a chat software for voice chat. We are trying to do it in Visual C++. So far we have not been able to get a start? How do we do it ? Are there any command in MFC to send sound via LAN ? If yes what are they ? Laslty would it be better to do this project in Java or Visual Basic ? Please help, Thanks.
|
|
|
|
|
How can I change the text color in a console-based program? Is there a 'textcolor' function like in DOS?
Thanks!
|
|
|
|
|
There are lots of great things you can do with the console api.
First you get a handle to the console:
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
This may be 0 - as long as its not INVALID_HANDLE_VALUE you're ok. Note - you'll need to #include <windows.h>
Now you can set colors. This sets white text on a red background:
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | BACKGROUND_RED);
I tested with printf, and assume cout is ok. You might like to investigate the fns like WriteConsole etc. Search for "Console functions" in the msdn. There is stuff for positioning too.
BTW I copied my own previous message on this Search this forum for 'console' for more stuff on consoles. What a great site!
|
|
|
|
|
I want to code a program which generates all possible
combinations of characters with a flexible length and
store this characters in a file.
The second part is no problem (Put the characters in a file)
but how must the algorithm look like to generates this characters ???
I mean how can I code the following scenario...
Ok lets say a want to generate words with a length up to 3 characters !!!
So the output should look like this...
a
b
c
.
.
.
z
.
.
.
a a
a b
a c
a d
.
.
.
b a
b b
b c
.
.
.
till z z z
OK ....
My first very simple idea was to make 3 for - loops
int z1,z2,z3;
for (z1=1;z1<256;z1++)
{
for (z2=1;z2<256;z2++)
{
for (z3=1;z3<256;z3++)
{
printf(" %c, %c , %c",z1,z2,z3);
}
}
}
This should work fine... but I've got no chance to make it flexible...
I mean this works only with 3 characters at run-time !!!
But I want to make an input at the beginning where you can tell how many characters
you want... in this case you can't work with for - loops ?!?!?
Did anyone of you know how this problem can be solved ???
Malcomx
|
|
|
|
|
Why not just write a routine that adds a char to the end of a string passed to it, then you'd just need to do something like this:
string s;
for (int i = 0; i< iNumOfChars; i++)
AddChar(s);
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|