|
|
Vivekuniq wrote:
If u know how to use TAPI 2.0 , u'd also know how to use 3.0..
TAPI 3 is a COM based api where as TAPI 2.x is a standard Windows API (dll). They are very different in their approach and concept.
Michael
CP Blog [^] Development Blog [^]
|
|
|
|
|
TAPI 3 is a COM based API. If you know how to use COM in C++ then you shouldn't have any problems with the MSDN samples.
As TAPI3 is COM based, you can probably use it directly from VB.
Of course, depending on your application, you may find that TAPI3 offers nothing that your TAPI2 code doesn't already do.
Michael
CP Blog [^] Development Blog [^]
|
|
|
|
|
Waste of time!
The only reason for convering a 2.0 (or even 1.0) tapi version of an application into the latest version, is if you are going to use features that are provided by the latest version.
Each new version of TAPI contains the interfaces for every previous version of TAPI. Therefore, even if the TAPI DLL on a given system changes, your application will still work.
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
Hi, I need to use the Calander control in my MFC dialog app. The user must be able to select multiple days and once selected, when a button is pressed, circle them and/or output the dates.
How would I go about getting data out of the control?
I cant seem to find much help with this topic.
Thanks
Ashley Rowe
I'm normally not a praying man, but if you're up there, please save me Superman.
|
|
|
|
|
Hi,
I don't think you can circle the selected dates, unless you do owner draw, if that is possible with this control. But you can have multiple selection and retrieve the selection easilly. Multiple selection seems to be limited to one week though. Just set the proper attributes (styles).
Also, you might want to look at the BCG Date Time control, which seems to be available for free and might do what you need. http://www.bcgsoft.com/download.htm
|
|
|
|
|
ldaoust wrote:
Multiple selection seems to be limited to one week though.
This is the default value. Sending the MCM_SETMAXSELCOUNT message allows this to be changed.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hi, everyone.
I have made dialog, and i call it through button on toolbar. In that dialog there is tree control with checkbox. My Question is when i close the dialog (click button OK), how i save state of tree control so when i call this dialog again the state of tree control same like before i close the dialog.
Thank you.
|
|
|
|
|
When you close the dialog create an in-memory object that can build the tree again as it was when re-loading the dialog.
good luck.
No hurries, no worries.
|
|
|
|
|
Sorry, but how i connect the tree with data/member in other class ?
I make class CMyTabControl (CTabCtrl). In this derived class, there is a struct ZZZ that i want to access.
I make the object of this class in a class View (childviewxxx).
This view is child from the childframexxx,which have the toolbar button that call this dialog. Condition of the tree is connected with the struct.
Thank you.
|
|
|
|
|
there are several ways to do this.
- Use a struct.
- copy the tree into a dummy tree (kept in memory but not shown on the screen)
- use xml and put that in a string.
I think xml will use the least memory, but rebuilding your tree will probably take a little longer.
anyway you can use anything you'ld like as long as you save enough data to rebuild your tree as it was.
good luck.
No hurries, no worries.
|
|
|
|
|
I already design a dialog to send data. It includes a edit box to enter a message and a button to send but I still do not know how to start to write the code to send the data.I want to ask the code should write under the send button or under others button. The dialog also includes 2 radio button which is MODBUS and the other is MEWTOCOL to choose. Please help me ......I was no time to finish my project already.......
|
|
|
|
|
Send data to... ???
Maybe you need a button Send with the ID: IDC_SEND . Then add a message handler (I assume you use MFC): ON_BN_CLICKED(IDC_SEND, CYourDlg::OnSend) . In this message handler, you send the data to your destination:
BEGIN_MESSAGE_MAP(CYourDlg, CDialog)
ON_BN_CLICKED(IDC_SEND, CYourDlg::OnSend)
END_MESSAGE_MAP()
void CYourDlg::OnSend()
{
}
Hope this helps
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
I have a code below:
void SendData(bool condition1, char PortNo[10],char IPAddr[50], char Data[11])
{
int _PortNo;
if(condition1)
{
_PortNo=atoi(PortNo);
SOCKET CliSocket;
// used to specify a local or remote endpoint address to which to connect a socket.
SOCKADDR_IN ServAddr;
WSADATA wsaData; // Create a WSADATA object called wsaData
WORD wError; // error flag
//[in] Highest version of Windows Sockets SPI support that the caller can use.
WORD wVersionRequested;
int nBytesSent, nError;
wVersionRequested=MAKEWORD(1,1); // makes a request for the version of Winsock on the system
wError=WSAStartup(wVersionRequested, &wsaData);// initialize Winsock
if(wError !=0)
{
AfxMessageBox("Windows Socket Error");
condition1=FALSE;
}
// Tell the user that we could not find a usable
else if(LOBYTE(wsaData.wVersion)!=LOBYTE(wVersionRequested)||
HIBYTE(wsaData.wVersion)!=HIBYTE(wVersionRequested))
{
AfxMessageBox("Socket Version Not Correct");
WSACleanup(); // reset
condition1=FALSE;
}
else
{
CliSocket=socket(AF_INET, SOCK_STREAM,0); // (AF_INET)Internet Protocol version 4
if(CliSocket==INVALID_SOCKET)
{
WSACleanup();
AfxMessageBox("Cannot Initialize Windows Socket");
condition1=FALSE;
}
else
{
ServAddr.sin_family=AF_INET;
ServAddr.sin_port=htons(_PortNo);// takes a 16-bit number in host byte order and returns a 16-bit number in network byte order
ServAddr.sin_addr.s_addr=inet_addr(IPAddr);
// gives the amount of storage
nError=connect(CliSocket,(LPSOCKADDR)&ServAddr,sizeof(ServAddr));
if(nError==SOCKET_ERROR)
{
closesocket(CliSocket);
WSACleanup();
AfxMessageBox("Cannot Connect to Display Server");
return;
}
nBytesSent=send(CliSocket, Data, lstrlen/*returns the length in bytes */(Data),0);
if (nBytesSent==SOCKET_ERROR)
{
closesocket(CliSocket);
WSACleanup();
AfxMessageBox("Send Error");
return;
}
else
{
closesocket(CliSocket);
WSACleanup();
}
}
}
}
}
So the code should write under the void CYourDlg::OnSend() or another place?
|
|
|
|
|
TTjen wrote:
So the code should write under the void CYourDlg::OnSend() or another place?
Call your function in the CYourDlg::OnSend() function and it should do what you want.
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
Hi,
I created .exe using Turbo editor. I would like to add an Image to the exe. How to add an Image to exe?
thanks in advance
dadsadasd
|
|
|
|
|
Have you checked out BeginUpdateResource() and UpdateResource() ?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
asv wrote:
I created .exe using Turbo editor
If I am not mistaken, you have created your Project/Software in Dos Based Turbo editor then i am afraid that's not possible with the dos based compiled version executable
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
hi all, plz see below.
The click event...
void MyTrayDlg::OnButton1()
{
//some code..
m_cList.AddString("item_x");
}
i'm trying to call this click event in some other function like..
void MyTrayDlg::MyFun()
{
this->OnButton1();
}
everything is working fine... but i'd like to know how to simulate a Real button on click.. i mean to see the "Pressing" effect on the Button1. how to do?
Thanx n regards,
Rookie
Installing MFC...2% complete.
|
|
|
|
|
Make a variable for the button: CButton m_Btn;
m_Btn.SendMessage(WM_LBUTTONDOWN,0,MAKELPARAM(2,2));
Sleep(400);
m_Btn.SendMessage(WM_LBUTTONUP,0,MAKELPARAM(2,2));
this is this.
|
|
|
|
|
Nice.. khan... but u know i'm putting this inside a loop in a worker thread..
void CQACDDlg::DevMonitoringThread()// thread
{
do
{
m_Btn.SendMessage(WM_LBUTTONDOWN,0,MAKELPARAM(2,2));
Sleep(400);
m_Btn.SendMessage(WM_LBUTTONUP,0,MAKELPARAM(2,2));
}
}
its freezing the GUI.. but not totally.. a small time slice is available within wihch if we call the CWinThread::SuspendThread().. its stopping.. but getting the time slice is very difficult.. i tried to increase the Sleep() to 1000. still i'm not able to click on the other button which fires SuspendThread().. u get me?..
Thanx n regards,
Rookie
Installing MFC...2% complete.
|
|
|
|
|
its actually a do{ } while loop i'm using inside the Thread.. by the way, is it a good practice to use do-while loop inside a thread to repeat a block of code?? please help
Thanx n regards,
Rookie
Installing MFC...2% complete.
|
|
|
|
|
do
{
m_Btn.SendMessage(WM_LBUTTONDOWN,0,MAKELPARAM(2,2));
Sleep(50);
m_Btn.SendMessage(WM_LBUTTONUP,0,MAKELPARAM(2,2));
Sleep(1000); // new one.
} while (1);
It seems that when the button is down, it does not let the parent click anywhere. So reduce the amount of time the button stays down to 50ms.
This seems working somewhat.
I feel lost on this one!
this is this.
|
|
|
|
|
anyway, its working Thanx a lot
regards,
Rookie
Installing MFC...2% complete.
|
|
|
|
|
Rookieee wrote:
its freezing the GUI...
Which would be the expected result when a thread sends a message to a control that it does not own. Post the message instead.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|