|
Yesterday (or the day before, I can't remember )
I asked how to print a CString (with RTF codes)
Here's the basic solution.
create a 'dummy' CRichEditCtrl.
create a 'dummy' Window to contain this control.
set the RTF text in the CRichEditCtrl.
Print from there.
That's it (hope it's helpful to anybody)!
(PS: not possible to give the code, because it's to hard to strip)
"If I don't see you in this world, I'll see you in the next one... and don't be late." ~ Jimi Hendrix
|
|
|
|
|
Hi,
I'm new in using windows sockets.
when I try to use windows sockets in my MFC application, I get the error "Could not start WinSock.DLL, error=0x276b".
in the InitInstance method, I have initialized winsock like this:
...
WSADATA ws;
if (!AfxSocketInit(&ws))
{
return FALSE;
}
...
event if I use the WSAStartup function, I get the messagebox error.
did I forgot to initialize something?
thanks for the help.
best regards.
There is no spoon.
|
|
|
|
|
I have not used AfxSocketInit but the the error it is reporting is
WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable.
So WSAStartup is failing in both cases.
This is only speculation but you do have a network card in your machine don't you?
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Hi,
In fact, it's a problem of linking. when I link with ws2_32.lib and mswsock.lib instead of wsock32.lib , it works fine. so it seems that wsock32.lib does not work properly?
There is no spoon.
|
|
|
|
|
If you look at the documentation for WSAStartup it is defined in Winsock2.h and therefore you should link with Ws2_32.lib .
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Is it because you do not include link to
"Ws2_32.lib" ?
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Hi,
I have exclude wsock32.lib and included ws2_32.lib in the link properties of the project and I don't get the error message.
But when I create a project that uses Visual C+ 6 with Windows Socket support (this project doesn't have any ws2_32.lib defined, it compiles and runs correctly, and when I create the same project with VS .NET 2003, I have the error I mentionned above Also a project like shareaza have no exclude libraries (like I have done)... it's maybe a problem of linking configuration.
There is no spoon.
|
|
|
|
|
Try not to be dependent on the wizard but do it manually instead.
The basic winsock initialization.
//initialize winsock
WSADATA wsaData;
int iRet=WSAStartup(0x101,&wsaData);
if(iRet)
return false;
SOCKET con;
con=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(con==INVALID_SOCKET)
return false;
//close connection
closesocket(con);
WSACleanup();
and include ws2_32.lib in the link.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
I have done manual links with ws2_32.lib and mswsock.lib instead of wsock32.lib and manual initialization and it works just fine thanks
There is no spoon.
|
|
|
|
|
Hi
In MDI application,to manage the documents,i want to add "list of documents opened as tree items" how can i do this ?Here tree is in instant bar.if i click the tree item corresponding document should be open.
adwance thanks to those who help me.
-Mahatma
|
|
|
|
|
I play video capture and files using windowless mode in Direct Show.I'd like to show just the video images in the native video sized application window. How can I do this ? Also there is a problem first displaying the file. The captured video or files can not be shown until the main application window is dragged by mouse. How can I update the view in a Doc/view architecture ?
Sincerely
Cem DEMiRKIR
|
|
|
|
|
I have a small project that generates XML formatted text on a file. Simple. In my class i create an ofstream that I just stream static text but also text generated from an operation. E.g. m_OFS << "\t\t<OBJECT Name=\"" << WritePart1() << "\">" << endl;
The problem here is that the operation call is evaluated first, then the rest of the statement resulting in an output looking like this:
MyA00000Var <OBJECT Name="0012FE80">
How do get it in the correct order? Of course i can break up the statement into three parts, like:
m_OFS << "\t\t<OBJECT Name=\""; WritePart1(); m_OFS << "\">" << endl;
But I would like to stream everything in a row.
(I hope the html output will look ok)
modified 26-Oct-22 21:01pm.
|
|
|
|
|
Why not do this
std::string strWritePart = WritePart1();
m_OFS << "\t\t<object Name=\"" << strWritePart << "\">" << endl;
Assuming WritePart1 returns a string
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
I can't use unicode on controls of VC++7. But as i known, VC++ 7 supported unicode. Who can advise me?
|
|
|
|
|
Can you be more specific on the nature of your problem? What does can't use unicode mean? Doesn't the controls work? Or, as a pure guess, the character being shown does not come out correctly?
If it is the latter, you need to ensure that you are using a UNICODE compatible font for display in your control.
I Dream of Absolute Zero
|
|
|
|
|
HI .
A main Dialog Class CMainDlg
and child dialog CChildDlg ... and it memeber in mian diloag class m_childDlg
CMainDlg ::OnBtnPush()
{
SetTimer ( 22 , 1000 , NULL);
m_childDlg.DoModal();
}
IN On_Timer Event
{
if (nIDEvent == 22 )
{
KillTimer (22);
m_childDlg.CloseWnd();
}
}
in Child dialog Class
CChildDlg::CloseWnd()
{
AfxmessageBox(" helllooooo");
///message box is dispalyed afer timer elaps but
/// after that program crashes n not close the dialog
CDialog::OnOK();
}
Program Crashes on OnOK()
y plz tell me
thanx
Regards.
|
|
|
|
|
My guess would be that OnOK calls the closewindow function also...
"If I don't see you in this world, I'll see you in the next one... and don't be late." ~ Jimi Hendrix
|
|
|
|
|
What code do you have in OnOK() ?
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
To Hello,
CDocument is used to manage data
CDialog is used as an interaction with the user to collect responses and data.
Somehow both class are not related, except deriving from CObject.
How can CDocument access CDialog data?
Since CView and CDialog is derived from CWnd, or how can CView pass the data from CDialog to CDocument.
Or has I miss some concept on the Doc/View architecture?
Thanks.
S1189216G
|
|
|
|
|
The easiest way is to pass a pointer to your CDocument class via the constructor of the CDialog derived class.
Michael
CP Blog [^]
|
|
|
|
|
Due to limitations of a combo box I was unable to get around, I decided to use a button and draw a popup menu when the button is clicked. The problem is that the contents of the menu are dynamic (for example, a list of widgets). I want the same method to be invoked no matter which menu item is selected (which I can do by giving the same ID to each menu item), and have that method ask the CMenu object which item was selected. However, there does not seem to be a method of CMenu to ask which menu item was selected. I suppose it would have been too easy to have TrackPopupMenu() return the item selected.
Incidently, the problem with the combo box is that I want the window text to say "Select Widget" at all times, rather than to display the selected widget.
Using SetWindowText() on the CComboBox does not do the trick.
|
|
|
|
|
gokings wrote:
the problem with the combo box is that I want the window text to say "Select Widget" at all times, rather than to display the selected widget
This is non-standard GUI behaviour, unless there is a REALLY good reason you should try to suprise the user as little as possible.
That said, you could use an edit control with read-only text 'Select Widget' and handle mouse-click messages. When one is received create/display a list box under the edit control and then destroy it once the user makes a selection.
gokings wrote:
I want the same method to be invoked no matter which menu item is selected (which I can do by giving the same ID to each menu item)
Don't use the same id, rather use one method to handle the range of commands you will put in the menu.
No offense, but neither the comb-box requirement nor your menu workaround provide a standard interface. I would really rethink going this route.
Why don't you want to display the selected item in the combobox ?
...cmk
Save the whales - collect the whole set
|
|
|
|
|
Hi,
I suggest you give different ID's to each menu-item. Each item gets a bnClicked handler (or whatever)
Then you can call the function you want to execute, BUT before you do that set a variable to some value.
eg.
void YourClass::OnBnClickedMenuItem1(){<br />
variable = 1;<br />
SameFunctionForEachItem();<br />
}<br />
<br />
void YourClass::SameFunctionForEachItem(){<br />
switch(variable){<br />
case 1:
break;<br />
}<br />
}
hope this helps!
"If I don't see you in this world, I'll see you in the next one... and don't be late." ~ Jimi Hendrix
|
|
|
|
|
Please keep your replies in the thread as oppossed to direct reply so others can follow.
For the menu option see the MSDN doc's for ON_COMMAND_RANGE. The example they give is specifically for handling menu selection.
For you ID_FILE_MENUITEM1 and ID_FILE_MENUITEM3 would define the extents of all possible menu options you would dynamically add.
From MSDN :
// The code fragment below shows how to use ON_COMMAND_RANGE macro
// to map a contiguous range of command IDs to a single message
// handler function (i.e. OnFileMenuItems() is the sample below).
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
// ...
ON_COMMAND_RANGE(ID_FILE_MENUITEM1, ID_FILE_MENUITEM3, OnFileMenuItems)
END_MESSAGE_MAP()
void CMainFrame::OnFileMenuItems(UINT nID)
{
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->CheckMenuRadioItem(ID_FILE_MENUITEM1, ID_FILE_MENUITEM3,
nID, MF_BYCOMMAND);
}
...cmk
Save the whales - collect the whole set
|
|
|
|
|
Thank you very much, that was very useful, and solved the problem nicely.
I was about to search the MFC header files for "ON_COMMAND" to see if I could find something nearby that seemed suitable for a range (as you had suggested earlier), when I received your message.
Once I saw the ON_COMMAND_RANGE and that the associated method received the command id as a parameter, the solution was clear.
Thanks again.
P.S. Sorry for taking so long to respond, I've been a bit under the weather.
|
|
|
|